jQuery返回错误选择的radiobox?
我有一个表单输入,由两个单选按钮组成,一个名称,如下所示:
在jQuery函数中,我引用了哪一个被检查:
type=$('input[name="type"]').is(':checked').val();
出于某种原因,即使我更改了页面上的复选框,如果总是返回前者。
以下是完整代码,用于消除:
Thumb/img BBCode generator Please enable Javascript or use the old generator Thumb/img BBCode generator for Facepunch
$('#1_c').click(function(){ var text=$('textarea').val(), type=$('input[name="type"]').is(':checked').val(); $.post('generate2.php', { text: text, type: type }, function(data) { $("#content").html(data); }); }); function reset(){ history.go('0'); }
实时版: http : //pdo.elementfx.com/thumb/
你遇到的问题是is
选择器返回一个布尔值而不是匹配的元素。 这意味着你最终在true / false
而不是单选按钮上调用val()
。
请尝试使用以下选择器
type=$('input[name="type"]:checked').val()
小提琴: http : //jsfiddle.net/fP2P4/1/
改为使用它:
type = $('input[name="type"]:checked').val();
使用is(':checked')
返回一个布尔值(true / false),它没有.val()
并触发错误。
如果选中该元素,则is(':checked')
返回true。 您不希望它返回true或false,您想要选择已检查的元素,因此请使用
type = $('input[name="type"]:checked').val();
is()方法返回一个布尔值,因此不清楚如何使这个语句起作用: $('input[name="type"]').is(':checked').val();
你应该使用$('input[name="type"]:checked').val()
代替。
你也可以使用$(’input [name =“type”]’)。prop(’checked’); 如果你更喜欢。
编辑: http : //jsfiddle.net/pVhn8/