Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jQuery选择单选按钮时出错_Javascript_Jquery_Html - Fatal编程技术网

Javascript 使用jQuery选择单选按钮时出错

Javascript 使用jQuery选择单选按钮时出错,javascript,jquery,html,Javascript,Jquery,Html,我有这个问题,我有这些单选按钮 <input type="radio" name="bank" id="bank-1" data-movt="0"> Bank 1 <br /> <input type="radio" name="bank" id="bank-2" data-movt="0"> Bank 2 <br /> 当我选择第二个单选按钮时,总是显示我的错误消息,这是我的jQuery代码: $('#save-bank').click(fun

我有这个问题,我有这些单选按钮

<input type="radio" name="bank" id="bank-1" data-movt="0"> Bank 1 <br />
<input type="radio" name="bank" id="bank-2" data-movt="0"> Bank 2 <br />
当我选择第二个单选按钮时,总是显示我的错误消息,这是我的jQuery代码:

$('#save-bank').click(function() {

    if ($('[name="bank"]').prop('checked') == true) {

        var id   = $('[name="bank"]').attr('id');
        var movt = $('[name="bank"]').data('movt');

        alert(id + ' - ' + movt);

    } else {

        alert('You need to select a bank');
    }
});

我做错什么了吗?遗漏了什么?因为它只适用于第一个单选按钮,所以我只能选择一个单选按钮,但我需要获取所选单选按钮的值,希望您能帮助我,谢谢。

您需要检查每个单选按钮,以查看其是否已选中。选中单选按钮后,您将使用选择器$'[name=bank]'获取属性,它将为您提供使用该选择器找到的第一个对象的属性

$function{ $“储蓄银行”。单击功能{ var计数=0; $'[name=bank]'。每个函数{ 如果$this.prop'checked'==true{ var id=$this.attr'id'; var movt=$this.data'movt'; alertid+'-'+movt; }否则{ 计数++; } } ifcount==2{ 警报“选择单选按钮”; } }; } 第一银行 银行2
保存尝试。。。这应该提供单个元素,而不是所有的[name=bank]元素

    if ($('[name="bank"]:checked')) {
      var id   = $('[name="bank"]:checked').attr('id');
      var movt = $('[name="bank"]:checked').data('movt');
      alert(id + ' - ' + movt);
    } else {
      alert('You need to select a bank');
    }

虽然可以循环所有元素,但这是一种更简单的方法,可以选择正确的单个元素,而无需JavaScript循环的开销。

$selector.prop'checked'将始终检查与选择器匹配的第一个元素上的checked属性。使用:选中选择器选择选中单选按钮。$'[名称=银行]:已选中@Tushar感谢您的回答,但我尝试了您的代码,但它不起作用,在这两种情况下,当我选择第二台收音机时,它现在显示错误消息。第二台收音机没有显示错误消息,但显示的信息与第一台收音机按钮相同。请仔细检查代码;我注意到第二行和第三行代码中有一个错误,忘记了:checked,它在获取值时缩小了选择范围。。。在我修复之前,你可能已经从我那里得到了代码;很抱歉错过了。今天吃了很多火鸡,困了。谢谢你的回答,但是问题用@rfornal的答案解决了。没问题,这也是一种实现同样目标的方法,尽管@rfornal代码更短
    if ($('[name="bank"]:checked')) {
      var id   = $('[name="bank"]:checked').attr('id');
      var movt = $('[name="bank"]:checked').data('movt');
      alert(id + ' - ' + movt);
    } else {
      alert('You need to select a bank');
    }