Javascript 窗体禁用提交按钮,直到选中其子复选框

Javascript 窗体禁用提交按钮,直到选中其子复选框,javascript,jquery,html,forms,Javascript,Jquery,Html,Forms,我有一个表单,里面有多个选择框。 我想禁用submit按钮,直到选中一个checbox 下面的解决方案对我来说比较有效: $(document).on('click', '#my_ids', function() { if($(this).prop('checked') == false){ $('.btn').prop('disabled', true); } else { $('.btn').prop('disabled', false); } }); 但是

我有一个表单,里面有多个选择框。 我想禁用submit按钮,直到选中一个checbox

下面的解决方案对我来说比较有效:

$(document).on('click', '#my_ids', function() {
  if($(this).prop('checked') == false){
    $('.btn').prop('disabled', true);
  }
  else {
    $('.btn').prop('disabled', false);
  }
});
但是,我想给表单一个“id”,在选中表单中的一个复选框之前,我想禁用submit按钮。不太清楚如何有效地到达那里

以下是我表格的要点:

<form accept-charset="UTF-8" id= 'my-form' action="/path" class="form-stacked" method="post">
    <table>
      <thead>
        <tr>
          <th><label title="Select All/None"><input id="" name="" type="checkbox" value=
          "1" /></label></th>
        </tr>
      </thead>

      <tbody>
        <tr>
          <td><label><input id="my_ids_" name="my_ids[]" type="checkbox" value=
          "123" /></label></td>

          <td>
            <a href="/path">William</a>
          </td
        </tr>

        <tr>
          <td><label><input id="my_ids_" name="my_ids[]" type="checkbox" value=
          "25" /></label></td>
        </tr>
      </tbody>
      <button class="btn" disabled="disabled" type=
      "submit">Assign
      </button>
    </table>
</form>


为您的表单提供一个
ID
。例如:
id=“myform”
并使用
input[type=checkbox]
,如果您想从该表单获取所有复选框。否则,也为该复选框指定一个ID

试试这个:

$('.btn').prop('disabled', true);
$('#myform input:checkbox').change(function () {
    var a = $('#myform input:checked').filter(":checked").length;
    if (a == 0) {
        $('.btn').prop('disabled', true);
    } else {
        $('.btn').prop('disabled', false);
    }
});

您也可以使用
HTML
,而不是使用JQuery将按钮设置为页面加载时禁用:

disabled="disabled"

试试这个:

$('.btn').prop('disabled', true);
$('#myform input:checkbox').change(function () {
    var a = $('#myform input:checked').filter(":checked").length;
    if (a == 0) {
        $('.btn').prop('disabled', true);
    } else {
        $('.btn').prop('disabled', false);
    }
});

JS:


给出你想要检查的表单,类
“singleCheckboxForm”

谢谢@ImbondBbaby。但是,如果页面中有多个带有复选框的表单,并且我只希望该表单具有这种行为,那么这就行不通了。我没有想到将表单id与change函数相关联。谢谢您也可以使用
:复选框
速记,而不是
输入[type='checkbox']
更新。。。非常感谢。上述解决方案存在一个小问题。如果有2个复选框,我选中2,然后取消选中1。按钮再次被禁用。