0
 $("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 函数中。警报出现,但我的提交框没有变灰。

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

4

2 回答 2

1
  1. 确保将代码包装在jQuery ready
  2. 如果$(selector)不匹配任何 DOM 节点,它将undefined在调用时返回.html。因此删除.length. ( undefined.length-> 抛出错误)
  3. .html改为.text. $.trim()如果要删除空格,您可以添加。
  4. 如果您使用的是 jQuery 1.6 或更高版本,请使用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);
    });
});
于 2013-05-26T20:02:00.637 回答
0

用这个

if($('#result').text()=='') $('button').prop('disable',true);
else $('button').prop('disable',false);
于 2013-05-26T20:00:58.987 回答