我有一个名为#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>
答案 0 :(得分:4)
this
引用元素本身,而不是它的值,因此错误undefined
,因为输入元素上没有这样的属性(length
)。
如果你使用this.value.length
,你将获得价值及其长度。
$('#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;