javascript - 动态增加单选按钮验证

标签 javascript jquery

我有一些根据数据动态增加的单选按钮。我想要的是检查是否选择了所有单选按钮。如果不是,我想在该特定行上显示一条错误消息,因为我正在使用表单替换将数据发送到 ajax。

 $(document).ready(function() {
   // radio buttons
   $('#mySpan4').submit(function(e) {
     e.preventDefault();
     $.ajax({
       url: 'ajax2.php',
       data: $(this).serialize(), // reads the data ...
       success: function(data) {
         alert("data Updated Successfully");
         window.location = 'login.html';
       }
     });
   });
 });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="mySpan4">
  <table>
    <tr>
      <td>
        Name : abc
      </td>
      <td>
        <input type="radio" name="game[0]" value="Mother">Mother
      </td>
      <td>
        <input type="radio" name="game[0]" value="Father">Father
      </td>
    </tr>
    <tr>
      <td>
        Name : def
      </td>
      <td>
        <input type="radio" name="game[1]" value="Mother">Mother
      </td>
      <td>
        <input type="radio" name="game[1]" value="Father">Father
      </td>
    </tr>
    <tr>
      <td>
        Name : ghi
      </td>
      <td>
        <input type="radio" name="game[2]" value="Mother">Mother
      </td>
      <td>
        <input type="radio" name="game[2]" value="Father">Father
      </td>
    </tr>
  </table>
  <input name="submit" type="submit" id="submit" value="submit">

</form>

最佳答案

您可以尝试使用 :checked

var all = $('input[type=radio][name^=game]').length;
var chk = $('input[type=radio][name^=game]:checked').length;
var exp = all / 2;// in a group two radios each, any one will be selected
if(chk === exp) {
  //all checked
} else {
  // some goup is not checked
}

$(document).ready(function() {
  // radio buttons
  $('#mySpan4').submit(function(e) {
    e.preventDefault();
    var all = $('input[type=radio][name^=game]').length;
    var chk = $('input[type=radio][name^=game]:checked').length;
    var exp = all / 2; // in a group two radios each, any one will be selected
    if (chk !== exp) {
      alert('Error, select all !');
      return false;
    }
    $.ajax({
      url: 'ajax2.php',
      data: $(this).serialize(), // reads the data ...
      success: function(data) {
        alert("data Updated Successfully");
        window.location = 'login.html';
      }
    });
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="mySpan4">
  <table>
    <tr>
      <td>
        Name : abc
      </td>
      <td>
        <input type="radio" name="game[0]" value="Mother">Mother
      </td>
      <td>
        <input type="radio" name="game[0]" value="Father">Father
      </td>
    </tr>
    <tr>
      <td>
        Name : def
      </td>
      <td>
        <input type="radio" name="game[1]" value="Mother">Mother
      </td>
      <td>
        <input type="radio" name="game[1]" value="Father">Father
      </td>
    </tr>
    <tr>
      <td>
        Name : ghi
      </td>
      <td>
        <input type="radio" name="game[2]" value="Mother">Mother
      </td>
      <td>
        <input type="radio" name="game[2]" value="Father">Father
      </td>
    </tr>
  </table>
  <input name="submit" type="submit" id="submit" value="submit">

</form>

关于javascript - 动态增加单选按钮验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30976739/

相关文章:

javascript - 在 d3.js 中改变对象的 [[prototype]] 的警告?

javascript - 需要将 url 放在网站的配置文件中,而不是放在 js 文件中

jquery - 接下来的AJAX如何安排?

jquery 从链接打开 Accordion

javascript - 在 HTML/JavaScript 文件中,如何选择要包含的数据文件?

javascript - :last for table

javascript - 在循环中构建对象属性的语法 - javascript

javascript - Create-React-App 创建这个 &lt;iframe&gt; 阻止我直接单击或编辑应用程序,除非我在元素浏览器编辑器中将其删除

javascript - 在数组中的不同位置添加 div 的子级

javascript - 如何延迟可折叠对象的展开,直到获取其内容?