JQuery if语句没有运行

时间:2013-05-26 19:43:03

标签: javascript jquery

 $("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函数中。警报显示但我的提交框不显示。

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

2 个答案:

答案 0 :(得分:1)

  1. 确保将代码包裹在jQuery ready
  2. 如果$(selector)与任何DOM节点都不匹配,则会在调用.html时返回undefined。因此,请删除.length。 (undefined.length - >抛出错误)
  3. 同时将.html更改为.text。如果要删除空格,可以添加$.trim()
  4. 如果您使用的是jQuery 1.6或更高版本,请使用prop代替attr

  5. 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);