为什么“这个”未定义?

时间:2017-02-01 20:00:07

标签: javascript jquery blur

我有一个名为#question_title的输入。我想在Blur事件上运行if语句。当我尝试检查长度时,它会以未定义的形式返回。任何想法为什么'这个'在这里不起作用?

JS

$('#question_title').on('blur', function(){
    console.log('this.length = ' + this.length);
    if ( this.length > 1 ) {
        // do something fabulous
    }
});

HTML

<div class="form-group question-title-wrap">
    <label for="question_title">What is your question?</label>
    <input type="text" class="form-control" id="question_title">
</div>

1 个答案:

答案 0 :(得分:4)

this引用元素本身,而不是它的值,因此错误undefined,因为输入元素上没有这样的属性(length)。

如果你使用this.value.length,你将获得价值及其长度。

&#13;
&#13;
$('#question_title').on('blur', function(){
    console.log('this.value.length = ' + this.value.length);
    if ( this.value.length > 1 ) {
        // do something fabulous
    }
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="form-group question-title-wrap">
    <label for="question_title">What is your question?</label>
    <input type="text" class="form-control" id="question_title">
</div>
&#13;
&#13;
&#13;