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/