Javascript jqueryif语句未运行

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(

上面的代码my if语句未运行。 如果我在控制台中运行If语句,它会正常运行,但只要我将其嵌套在click函数中,它就会立即运行。警报显示,但“我的提交”框未变灰

任何人都知道我的代码有什么问题。

使用这个

 $("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 1.6或更高版本,请使用而不是

  • 您可以将代码最小化为:

    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);
        });
    });