Javascript if / else语句无法按预期工作

时间:2014-02-12 22:13:28

标签: javascript jquery function

使用CKEDITOR并尝试在内容长度为0时禁用提交按钮,然后在键盘上,再次检查该功能并查看该值是否大于1,如果是,则将提交按钮设置为启用。

所以我们有这个:

CKEDITOR.on('instanceReady', function(){
    disableNewPost();
    var e = CKEDITOR.instances['newpost'];
    e.on( 'keyup', function() {
        disableNewPost();
    });
});

function disableNewPost() {
    var value = CKEDITOR.instances['newpost'].getData();
    var valueL = value.length
    if ($(valueL) < 1) {
        $(".addnewpostbtn").prop("disabled", true);
    } else if ($(valueL) > 0) {
        $(".addnewpostbtn").prop("disabled", false);
    }
}

这会正确获取值和长度,如果设置了警报(值)或警报(valueL),它会显示它所显示的内容。

然而if语句似乎不起作用。

Onpage load,CKEDITOR没有内容,警报显示其长度为0。

但是使用上面的if语句它不会禁用该按钮。我已经尝试了所有可以想到的变化(==''/ == 0)等等。但没有运气。

如果函数只包含:

$(".addnewpostbtn").prop("disabled", true);

然后它会禁用。

任何帮助?

1 个答案:

答案 0 :(得分:5)

您无需调用$来评估普通变量。它应该是:

if (valueL < 1) {
    $(".addnewpostbtn").prop("disabled", true);
} else {
    $(".addnewpostbtn").prop("disabled", false);
}

或更简单:

$(".addnewpostbtn").prop("disabled", valueL === 0);