Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.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_Radio Button - Fatal编程技术网

Javascript jquery未将我的一个单选按钮注册为选中的

Javascript jquery未将我的一个单选按钮注册为选中的,javascript,jquery,html,radio-button,Javascript,Jquery,Html,Radio Button,我有一个单选按钮选择,jquery可以循环遍历它们并读取每个按钮的值,但是jquery只能检测何时选择了其中一个。当选择另一个时,jquery只会忽略它,并告诉我没有选择任何对象 jquery: $('[name="banner_type"]').each(function() { console.log($(this).val()); if($(this).is(':checked')) {

我有一个单选按钮选择,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:



jquery忽略了“upload”,而“html”不是

,else部分设置了valid的值,但没有返回它。第二个单选按钮的值始终为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;
   }
});
这可以写得更短更好,但现在我只是在解决我看到的问题。

我这样做:

valid=false;
$('[name="banner_type"]').each(function() {
    if($(this).is(':checked'))
        valid = $(this).val();
});
所以,每次您检查正在检查的收音机时,有效值都会被更新

给你小提琴。函数“check”检查有效性,如果未选择,则返回false。

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

$('.your-radios-container').on('change','[name="banner_type"]',function(){
    valid = $(this).prop('checked');
});
我用叉子叉了你的小提琴,让你看看它是如何工作的:


如果
其他
足够,您就不需要
其他!提示:您可以使用
this.value
&
this.checked
而不是
$(this).is(':checked')
&
$(this.val()
这段代码在单击或更改事件处理程序中吗?您到底想实现什么?感谢您的回复,但我想确保在返回false之前没有选中这两段代码。无论结果如何,您的方法都只是检查第一个单选按钮。这就是为什么我的报税表是有效的;在循环外部,而不是处于错误状态。这些是具有相同名称的单选按钮“banner\u type”。它们不能同时被检查。这是基本的核心单选按钮功能。它起作用了!我当然不知道这是如何解决jquery没有看到选中的“上传”的问题的,但是为了简单起见,我尝试了它,它也可以工作!非常感谢。嘿,将您的代码转换为人类可读的伪代码将是:对于每个无线电选项,请执行{检查当前无线电是否已检查,是否为返回值和返回值。如果不是,还可以执行-return value和return}因此,您返回的第一个值打破了循环。另外,-unchecked radio的值等于false,并选中了它的属性值:-)我使用的是1.7.2版,因此.prop()函数对我不起作用。
$('.your-radios-container').on('change','[name="banner_type"]',function(){
    valid = $(this).prop('checked');
});