我正在使用以下 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/