function safe(){
if($(this).is(':checked')){
$("select[name='sort']").attr("disabled", "disabled");
$("input[name='group']").attr("disabled", "disabled")
} else {
$("select[name='sort']").attr("disabled", false);
$("input[name='group']").attr("disabled", false)
}
}
$('input#safe').change(failsafe);
我有这个功能,我想同时运行onLoad和onChange。目前只有onChange工作,但在onLoad上,这些字段仍然有效。
感谢您的帮助!
答案 0 :(得分:3)
不完全确定这是否是您正在寻找的,但如果您希望在页面加载时运行safe()
代码,请尝试此操作。
示例: http://jsfiddle.net/ewNEc/
$(function() {
function safe(){
if( this.checked ){
$("select[name='sort']").attr("disabled", "disabled");
$("input[name='group']").attr("disabled", "disabled")
} else {
$("select[name='sort']").attr("disabled", false);
$("input[name='group']").attr("disabled", false)
}
}
$('input#safe').change(safe).triggerHandler("change");
});
使用.triggerHandler()
在不改变状态的情况下触发处理程序。
答案 1 :(得分:2)
我在这里假设safe
是您所指的failsafe
函数,它只是一个帖子混音。而不是.is(':checked')
,你可以使用.checked
DOM属性并使其非常短,如下所示:
$(function() {
$('input#safe').change(function() {
$("select[name='sort'], input[name='group']").attr("disabled", this.checked);
}).change();
});
最后的.change()
调用会触发您绑定的change
事件处理程序,因此它也会在加载时运行。