Javascript jqueryif语句未运行
上面的代码my if语句未运行。 如果我在控制台中运行If语句,它会正常运行,但只要我将其嵌套在click函数中,它就会立即运行。警报显示,但“我的提交”框未变灰 任何人都知道我的代码有什么问题。使用这个Javascript jqueryif语句未运行,javascript,jquery,Javascript,Jquery,上面的代码my if语句未运行。 如果我在控制台中运行If语句,它会正常运行,但只要我将其嵌套在click函数中,它就会立即运行。警报显示,但“我的提交”框未变灰 任何人都知道我的代码有什么问题。使用这个 $("input[type=checkbox]").click(function(){ alert("clicked"); if($('#result').html().length) { $('button[type="submit"]').attr(
$("input[type=checkbox]").click(function(){
alert("clicked");
if($('#result').html().length) {
$('button[type="submit"]').attr('disabled','disabled');
} else { $('button[type="submit"]').removeAttr('disabled'); }
});
$(选择器)
与任何DOM节点都不匹配,则调用时将返回未定义的
。因此,请删除.length
。(undefined.length
->引发错误).html
更改为.text
。如果要删除空白,可以添加$.trim()
您可以将代码最小化为:
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);
}
});
});
它是否用
$(document.ready()
包装,什么元素是#result
?是否执行了alert()
?尝试使用prop
方法:$('button[type=“submit”]”)。prop('disabled',true)代码>如果我在控制台中单独运行代码,它就会工作。但是一旦我嵌套了代码,这个部分就不会运行$('button[type=“submit”]').attr('disabled','disabled');可以创建一个JSFIDLE来显示问题吗?可以再进一步:$('button[type=“submit”]').prop('disabled',function(){return Boolean($.trim($('#result').text())?true:false;})
(但我认为,!!$.trim(/*…*/)
也同样可靠/简单。)@DavidThomas我使用布尔()
来避免将注意力从脚本的主要部分移开。我认为代码>并不是那么清楚。
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);
});
});