Jquery没有将我的一个单选按钮注册为选中

jquery not registering one of my radio buttons as selected

本文关键字:单选按钮 一个 注册 我的 Jquery      更新时间:2023-09-26

我有一个单选按钮选择,jquery能够遍历它们并读取每个按钮的值,但是jquery只能在其中一个被选中时检测到。当选择另一个时,jquery只是忽略它,并告诉我没有选择。

jquery:

           $('[name="banner_type"]').each(function() {
                console.log($(this).val());
               if($(this).is(':checked')) {
                    valid = $(this).val();
                   return valid;
               } else if(!$(this).is(':checked')) {
                   valid = false;
               }
            });
html:

<input type="radio" id="upload" name="banner_type" value="upload" />
<input type="radio" id="html" name="banner_type" value="html" />

"upload"被jquery忽略,"html"不是

我是这样做的:

valid=false;
$('[name="banner_type"]').each(function() {
    if($(this).is(':checked'))
        valid = $(this).val();
});

所以每次你检查无线电被检查,有效值更新。

这是给你的小提琴。函数"check"检查有效性,如果没有选择则返回false。http://jsfiddle.net/CLaDG/

else部分设置有效值,但不返回它。另外,对于第二个单选按钮,该值始终为false。试试这个:

$('[name="banner_type"]').each(function() {
   console.log($(this).val());
   if($(this).is(':checked')) {
      valid = $(this).val();
      return valid;
   } else if(!$(this).is(':checked')) {
      valid = $(this).val();
      return valid;
   }
});

这可以写得更短更好,但现在我只是修复我看到的问题。

不确定您使用的是哪个版本的jQuery,但请尝试使用jQuery。容器上的Prop和委托事件可能更干净,例如:

$('.your-radios-container').on('change','[name="banner_type"]',function(){
    valid = $(this).prop('checked');
});

我已经把你的小提琴分叉了,向你展示它是如何工作的:

http://jsfiddle.net/AcMBR/2/