我需要javascript checkboxes.click(function())在页面首次加载时启动
I need the javascript checkboxes.click(function()) to start when the page first loads
我使用以下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" />
因为你是使用jQuery使用它的ready
函数:
$(document).ready(function(){
var checkboxes = $("input[type='checkbox']"),
submitButt = $("input[type='submit']");
checkboxes.click(function() {
submitButt.attr("disabled", !checkboxes.is(":checked"));
});
});
这样代码只会在页面加载并且jQuery准备好时执行。因此,点击处理程序可以在实际存在的复选框上设置。
2个选项:1)在你的HTML代码中添加属性"disabled";2)使用这个代码
document.addEventListener("DOMContentLoaded", function(event) {
var checkboxes = $("input[type='checkbox']"),
submitButt = $("input[type='submit']");
checkboxes.click(function() {
submitButt.attr("disabled", !checkboxes.is(":checked"));
});
});
您可以使用以下命令:
window.onload = function () {
submitButt.attr("disabled", !checkboxes.is(":checked"));
}
…并将内容外化到onload和checkboxes。click函数中
只需创建一个函数,并在页面加载和点击支票簿时调用它。
注意:你可以修改函数名
请检查下面的代码片段:
var checkboxes = $("input[type='checkbox']");
var submitButt = $("input[type='submit']");
var onloadCheckboxesCheck = function() {
submitButt.attr("disabled", !checkboxes.is(":checked"));
}
onloadCheckboxesCheck();
checkboxes.click(function() {
onloadCheckboxesCheck();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input type="checkbox" name="lname">
<input type="checkbox" name="lname">
<input type="checkbox" name="lname">
<input type="checkbox" name="lname">
<input type="submit" value="Submit">
你所需要做的就是触发事件:
$(function() {
$('input[type=checkbox]').on('change', function(e) {
$('input[type=submit]').prop('disabled', 0 === $('input[type=checkbox]:checked').length);
}).trigger('change');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<input type="checkbox" />
<input type="checkbox" />
<input type="checkbox" />
<input type="submit" />
-
.trigger('change')
将触发复选框上的更改事件。 -
$('input[type=checkbox]:checked')
将给你checked
列表,复选框
相关文章:
- 如何防止网页加载后自动启动功能
- 在页面启动期间加载图像
- Jquery时间启动计时器,我有一个计时器的代码,但它在页面加载时启动
- 在呈现HTML样式和脚本时加载启动页
- 启动选项卡ajax在加载页面时加载内容
- 初次加载后关闭启动屏幕
- 在 Metro 风格应用中启动时加载数据
- 使用Bookmarklet在Firefox中为asp表单加载启动onclick事件
- 模式视图重新加载内容(启动MVC ASP.NET)
- 视频(自动播放)通过javascript隐藏,但已经在页面加载时启动
- 加载图像后启动转换事件
- 当窗口打开时,IE9在加载前启动事件
- Mozilla Firefox加载项将不会启动
- FileReader未在Ionic 2中加载端启动
- 如何在 Rails 中停止在页面重新加载时重新启动计时器
- TineMCE 不会启动 ajax 加载的文本区域
- JavaScript 在应用程序首次启动时不会加载
- 如何仅在启动选项卡处于活动状态时加载启动选项卡内容
- 加载启动模式后延迟不工作
- 强制为每个访问者加载启动页面