javascript - 我需要 javascript checkboxes.click(function()) 在页面首次加载时启动

标签 javascript jquery html checkbox pageload

我正在使用以下 js 代码禁用表单提交按钮,直到至少选中一个复选框。

var checkboxes = $("input[type='checkbox']"),
    submitButt = $("input[type='submit']");

checkboxes.click(function() {
    submitButt.attr("disabled", !checkboxes.is(":checked"));
});

问题是代码在页面首次加载时不起作用。当用户第一次来到这个页面时,他可以点击提交,但是如果他选中了一些东西然后取消选中所有的东西,那么提交就会被禁用。

看起来我需要在页面首次加载时启动的代码。有什么建议吗?

最佳答案

添加 submitButt.attr("disabled", !checkboxes.is(":checked")); 首先禁用提交按钮。此外,最好将其包装在 domready 或 onload 中,以确保 jQuery 可以访问完全呈现的 DOM

$(function() {
  var checkboxes = $("input[type='checkbox']"),
          submitButt = $("input[type='submit']");

  checkboxes.click(function() {
      submitButt.attr("disabled", !checkboxes.is(":checked"));
  });
  
  // Add this line to set init status of the submit.
  // submitButt.attr("disabled", true)); is ok as you don't have any checked checkbox when page loaded.
  submitButt.attr("disabled", !checkboxes.is(":checked"));
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<input type="checkbox" id="c1"/ >c1
<input type="checkbox" id="c2"/ >c2
<input type="checkbox" id="c3"/ >c3
<input type="submit" value="click" />

关于javascript - 我需要 javascript checkboxes.click(function()) 在页面首次加载时启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31828437/

相关文章:

javascript - Actionscript 3 javascript 通信 : Object #<HTMLEmbedElement> has no method

javascript - 如何在多个 switch 案例中使用用 let 声明的变量名?

循环中的 Javascript 提示替代

javascript - 获取此 html 字符串中的第二个 tds 标记文本

html - 2个div与css和html :在同一位置

javascript - 用 ContentEditable 属性替换 textarea - Javascript 运行多次

jquery - 如何使用 jQuery 将 html 表格单元格更改为文本输入

javascript - 使用 javascript 动态更改 TinyMCE 编辑器的背景

javascript - PRE 元素内有过多空白的问题

javascript - 为什么我的 observableArray 不工作?