我正在尝试从带有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或任何值。 感谢
答案 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;
}