仅当选中否则设置给定值时,Jquery检查来自单选按钮的值

时间:2012-01-19 16:52:41

标签: jquery ajax radio-button

我正在尝试从带有ajax的表单发送一些单选按钮,问题是我无法获取按钮的值。 如果我可以使用

,一切都会容易得多
data: $('form#my_form').serialize(),

问题是,如果未选中单选按钮,则根本不发送任何值,并且我需要某些单选按钮组的某种“未选中”值,以便在php中验证表单并回复错误消息。 这就是我尝试的原因:

if ($('input[name=radio_group]').prop('checked')==true) {
        var radio_value=$('input:radio[name=radio_group]').val();
        }
    else {var radio_value=0;}

然后只发送单个值。 但是上面的函数不起作用:如果没有选中单选按钮,它返回值为“0”,但即使它们被剔除它仍然返回“0”,如果选中第一个单选按钮,它只返回正确的值,否则它总是“0”。

有什么建议吗? 另外,有没有更简单的方法来实现我想要的?如果没有选中单选按钮,我只需要.serialize()来发送null或任何值。 感谢

5 个答案:

答案 0 :(得分:2)

这对你有用......

var radio_value = $('input:radio[name=radio_group]:checked').val();

答案 1 :(得分:2)

确保所有单选按钮具有相同的名称。可能是它们不相同,这是它在检查时仅用于第一个单选按钮的原因。您可以在确保所有单选按钮的名称后尝试此操作

var radio_value = ($('input:radio[name=radio_group]:checked').val() || 0);

答案 2 :(得分:1)

为什么不在javascript中进行验证而不是从php脚本中进行弹跳。我是jQuery Validation插件的忠实粉丝。

http://bassistance.de/jquery-plugins/jquery-plugin-validation/

答案 3 :(得分:1)

你可以尝试.is(':checked'),类似下面的东西可以做到这一点,

if ($('input[name=radio_group]').is(':checked')) 

答案 4 :(得分:1)

if($('input:[name = radio_group]')。prop('checked')== true)

{

 var radio_value = $('input:radio[name=radio_group]:checked').val();

}

其他

{

var radio_value=0;

}