【问题标题】:validate checkbox input must be checked one only by jquery验证复选框输入必须仅由 jquery 检查一个
【发布时间】:2017-02-26 05:14:46
【问题描述】:

我有一个带有复选框的表单,并通过 jquery 提交方法,如下所示:

$("form.adj_baru").submit(function (event) {
                event.preventDefault();
                if (confirm('Anda yakin akan submit ?')) {
                    var formData = new FormData($(this)[0]);
                    var cekbox = $("input[name=size]").val();
                    if (cekbox === "") {
                        alert("Pilih salah satu ukuran !");
                        return;
                    }
                    $.ajax({
                        url: 'adj/adj_crud.php', //type='add_adj'
                        type: 'POST',
                        data: formData,
                        async: false,
                        cache: false,
                        contentType: false,
                        processData: false,
                        success: function (data) {
                            console.log(data);
                            }
                    });
                }
                return false;
            });
<body>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form class='adj_baru'>
  <label>Checkbox : </label><br>
  <input type='checkbox' name='size' value='m'>M<br>
  <input type='checkbox' name='size' value='l'>L<br>
  <input type='checkbox' name='size' value='xl'>XL<br>
  <input type='submit' value='SUBMIT'>
  </form>
  </body>

当复选框为空时,警报alert("Pilih salah satu ukuran !") 不起作用。如果复选框未选中 either 并且选中 no more than one

,如何发出警报

【问题讨论】:

    标签: jquery html validation checkbox


    【解决方案1】:

    您可以使用 .length 计算选中的复选框。见sn-p。然后您可以决定,如果选中了一定数量的复选框(或者没有选中),该怎么办。

    $("form.adj_baru").submit(function (event) {
                    event.preventDefault();
                    var checked = $("input[name=size]:checked").length;
                    if (checked === 1) {
                      alert("1 checked");
                    } else if (checked > 1) {
                      alert("More than 1 checked");
                    } else {
                      alert("None checked");
                    }
                    return false;
                });
    <body>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <form class='adj_baru'>
      <label>Checkbox : </label><br>
      <input type='checkbox' name='size' value='m'>M<br>
      <input type='checkbox' name='size' value='l'>L<br>
      <input type='checkbox' name='size' value='xl'>XL<br>
      <input type='submit' value='SUBMIT'>
      </form>
      </body>

    【讨论】:

      【解决方案2】:

      也许你更新了下面的部分。检查是否有复选框被选中。

                      var cekbox = $("input[name=size]:checked").length;
                      if (cekbox == 0) {
                          alert("Pilih salah satu ukuran !");
                          return;
                      }
      

      【讨论】:

        【解决方案3】:

        这是另一种检查复选框是否选中的方法:

                        var cekbox = $("input:checked").length;
                        if (cekbox == 0) {
                            alert("Pilih salah satu ukuran !");
                            return;
                        } 
        

        【讨论】:

          【解决方案4】:

          试试这个代码

           if ($("input:checked[name=size]").length != 1) {
                alert("Pilih salah satu ukuran !");
                return;
           }
          

          这里是演示https://jsfiddle.net/8wzcyoe5/

          【讨论】:

            猜你喜欢
            • 2012-09-17
            • 2020-06-24
            • 2012-10-17
            • 1970-01-01
            • 2012-04-20
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-08-14
            相关资源
            最近更新 更多