【问题标题】:Jquery check value from radio buttons only if checked otherwise set given valuejQuery检查值只有从无线电按钮中检查,如果已选中其他设置的给定值
【发布时间】:2012-03-25 19:14:24
【问题描述】:

我正在尝试使用 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 或任何值。 谢谢

【问题讨论】:

    标签: jquery ajax radio-button


    【解决方案1】:

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

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

    【讨论】:

    • 非常感谢。即使我尝试了我的脚本,这些名字也是一样的。我的剧本一定有问题。再次感谢,我在发布前花了 2 个小时试图弄清楚。
    【解决方案2】:

    这应该适合你...

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

    【讨论】:

    • 已经尝试过了,但它一直给我 0 值,它只为第一个单选按钮提供正确的值。
    • @g0dl3ss:忘记你的 if 语句,只需要我的一行即可。如果你总是得到 0 那么你确定你的 HTML 是正确的吗?您可以在原始问题中发布相关部分吗?
    【解决方案3】:

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

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

    【讨论】:

    • 谢谢,但无论如何我都需要将值传递给 php。另外我更喜欢验证服务器端。
    【解决方案4】:

    你能试试 .is(':checked'),像下面这样的东西应该可以解决问题,

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

    【讨论】:

    • 脚本的第一部分有效,问题出在第二部分,从按钮中收集值。
    • 试过了,即使选择的答案有效,但它对我不起作用,不知道为什么。
    【解决方案5】:

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

    {

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

    }

    否则

    {

    var radio_value=0;
    

    }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-08
      • 1970-01-01
      • 1970-01-01
      • 2015-12-30
      • 2017-12-31
      • 2016-09-22
      • 1970-01-01
      • 2020-01-20
      相关资源
      最近更新 更多