Javascript 如何获取未选中的单选按钮(Jquery)?

Javascript 如何获取未选中的单选按钮(Jquery)?,javascript,jquery,Javascript,Jquery,我正在用php和mysql构建一个动态移动问答应用程序。该应用程序包含10个选择题,其中一些(但不是全部)可能是单选按钮(其他是下拉选择) 我想确保在启用“提交”按钮之前已选中所有单选按钮。这是我在SO上找到的脚本: <script type="text/javascript"> $(document).ready( function() { $('#submitform').prop('disabled', true); inspectA

我正在用php和mysql构建一个动态移动问答应用程序。该应用程序包含10个选择题,其中一些(但不是全部)可能是单选按钮(其他是下拉选择)

我想确保在启用“提交”按钮之前已选中所有单选按钮。这是我在SO上找到的脚本:

<script type="text/javascript">
    $(document).ready( function() {  
        $('#submitform').prop('disabled', true);
        inspectAllInputFields();
    });

    $('input[type=radio]').change(function() {
       inspectAllInputFields();
    });

    function inspectAllInputFields(){
         var count = 0;
         $('.radio-button').each(function(i){           
           if(  $(this).val() === '') {  // this line doesn't work
               count++;
            }
            if(count == 0){
              $('#submitform').prop('disabled', false);
            }else {
              $('#submitform').prop('disabled', true);              
            }
        });
    }
</script>

$(文档).ready(函数(){
$('#submitform').prop('disabled',true);
inspectAllInputFields();
});
$('input[type=radio]')。更改(函数(){
inspectAllInputFields();
});
函数inspectAllInputFields(){
var计数=0;
$('.单选按钮')。每个(函数(i){
如果($(this.val()=''){//此行不起作用
计数++;
}
如果(计数=0){
$('#submitform').prop('disabled',false);
}否则{
$('#submitform').prop('disabled',true);
}
});
}
以下是表格代码的摘录(我刚刚使用了前几个问题,其中2个是radio,1个是select):


1.问题1
  • 真的
  • 假的
2.问题2?
  • 真实的
  • 伪造的
3.问题3 0-10% 11-20% 21-30% 31-40% 41-50% 51-60% 61-70% 71-80% 81-90% 91-100% 计算结果

如何修复jquery代码,以便仅当用户单击了所有单选按钮的某个内容时,才启用submit按钮?

使用下面的javascript

$(document).ready( function() {  
    $('#submitform').prop('disabled', true);
    inspectAllInputFields();
});

$('input[type=radio]').change(function() {
   inspectAllInputFields();
});

function inspectAllInputFields(){
     var count = 0;
     $('#submitform').prop('disabled', false);
     $('.radio-button').each(function(i){           
      count = $(this).find('input[type=radio]:checked').length;
        if(count == 0){
          $('#submitform').prop('disabled', true);
        }
    });
}
请同时检查您需要使用的功能


您可以使用jquery
is(“:checked”)
。 或者您可以尝试一种更好的方法,将输入字段设置为必填字段


$(文档).ready(函数(){
$('#submitform').prop('disabled',true);
inspectAllInputFields();
});
$('input[type=radio]')。更改(函数(){
inspectAllInputFields();
});
函数inspectAllInputFields(){
//如果两者都选中,则启用提交按钮
如果($(“输入[name=question1]”)是(“:选中”)&&($(“输入[name=question2]”)是(“:选中”)){
$('#submitform').prop('disabled',false);
}
}

的可能副本可能需要考虑解决方案中的选择器。谢谢-但问题是“this”指的是
    的radiobutton类,而不是单选按钮输入本身。所以这是行不通的:(我如何选择该UL类中的单选按钮输入?谢谢Adam,但现在发生的是它统计每个单选输入项。因此,对于上述示例,有2个单选组,但有4个单选输入。您的函数返回的是单选输入计数-因此,如果用户选择了问题1和问题2的答案,则将有2个输入。)将被选中,但其他两个将不被选中。因此,即使用户正确回答了两个问题,按钮仍将被禁用Hanks@AgamBanga-这就成功了!我将研究代码以了解此解决方案的具体工作原理。@Gauravkeer我很高兴能帮到您使用.attr()函数使用
    .prop
    @George如果stackoverflow上会有一个blooper卷盘,那么肯定会出现这种情况。另一个问题是,“this”指的是
      的radiobutton类,它不是单选按钮输入本身。因此这不起作用:(我如何选择该UL类中的单选按钮输入?仅查询输入元素
      $('.radio button input')。每个(函数(I){
      对不起,我的头部位于错误的位置。实际上,检查是否选中的是
      prop
      而不是
      attr
      函数。这仅在表单不是动态的情况下有效。)(即我事先知道哪些问题是单选的,哪些是精选的)但这个应用程序并非如此。因此,我无法硬编码字段名。有更好的方法吗?
      $(document).ready( function() {  
          $('#submitform').prop('disabled', true);
          inspectAllInputFields();
      });
      
      $('input[type=radio]').change(function() {
         inspectAllInputFields();
      });
      
      function inspectAllInputFields(){
           var count = 0;
           $('#submitform').prop('disabled', false);
           $('.radio-button').each(function(i){           
            count = $(this).find('input[type=radio]:checked').length;
              if(count == 0){
                $('#submitform').prop('disabled', true);
              }
          });
      }
      
      if($(this).prop('checked') !== false);
      
          <script type="text/javascript">
              $(document).ready( function() {  
                  $('#submitform').prop('disabled', true);
                  inspectAllInputFields();
              });
      
              $('input[type=radio]').change(function() {
                 inspectAllInputFields();
              });
      
              function inspectAllInputFields(){
                 //If both checked enable submit button
                if($("input[name=question1]").is(":checked") && $("input[name=question2]").is(":checked")) {
                   $('#submitform').prop('disabled', false);
                }
              }
          </script>