$("input[type=checkbox]").click(function(){
alert("clicked");
if($('#result').html().length) {
$('button[type="submit"]').attr('disabled','disabled');
} else { $('button[type="submit"]').removeAttr('disabled'); }
});
上面的代码我的if语句没有运行。 如果我在控制台中运行if语句,它运行正常,但只要我将其嵌入click函数中。警报显示但我的提交框不显示。
任何人都知道我的代码有什么问题。
答案 0 :(得分:1)
jQuery ready
$(selector)
与任何DOM节点都不匹配,则会在调用.html
时返回undefined
。因此,请删除.length
。 (undefined.length
- >抛出错误).html
更改为.text
。如果要删除空格,可以添加$.trim()
。prop
代替attr
。jQuery(function($) {
$("input[type=checkbox]").click(function(){
alert("clicked");
if( $.trim($('#result').text()) ) {
$('button[type="submit"]').prop('disabled', true);
}
else {
$('button[type="submit"]').prop('disabled', false);
}
});
});
您可以将代码最小化为:
jQuery(function($) {
$("input[type=checkbox]").click(function() {
// Make sure myTest is an boolean:
var myTest = Boolean( $.trim($('#result').text()) );
// Send myTest as 2th argument:
$('button[type="submit"]').prop('disabled', myTest);
});
});
答案 1 :(得分:0)
使用此
if($('#result').text()=='') $('button').prop('disable',true);
else $('button').prop('disable',false);