首页 > 解决方案 > 检查是否有任何无线电组没有选择

问题描述

如果用户尝试提交表单而不提供任何无线电组的选择,我会尝试发出警报。表单是动态的,无线电输入的名称也是如此。

我想出了以下解决方案:

$("input:radio").each(function() {
  var name = $(this).attr("name");
  if($("input:radio[name="+name+"]:checked").length == 0) {
    incomplete = true;
  }
});

但是我收到以下控制台错误:

Error: Syntax error, unrecognized expression: input:radio[name=response_text[11898]]

什么在语法上无效?

编辑:按要求添加 HTML

<div class='form-group'>
  <label for='11899'>2. The earth is flat</label>
    <ol class='answers' id='11899' tabindex='2'>
        <li class='answer'>
            <input type='radio' name='response_text[11899]' value='766' id='766'>
      <label for='766' class='answer-text'>True</label>
     </li>
     <li class='answer'>
          <input type='radio' name='response_text[11899]' value='767' id='767'>
          <label for='767' class='answer-text'>False</label>
     </li>
    </ol>
</div>

标签: javascriptjquery

解决方案


你很少错过周围的报价name

改变

$("input:radio[name="+name+"]:checked")

$("input:radio[name='"+name+"']:checked")

您的完整代码应如下所示

$("input:radio").each(function() {
  var name = $(this).attr("name");
  if($("input:radio[name='"+name+"']:checked").length == 0) {
    incomplete = true;
  }
});

推荐阅读