我要检查的10个输入字段中至少有2个字符...
<input type="text" />
<input type="text" />
<input type="text" />
$('input[type="text"]').on('keyup', function(){
if($(this).length > 2){
alert('yeah')
} else {
alert('no');
}
});
我使用上述内容但我一直收到警报&#34;否&#34;
为什么会这样?
答案 0 :(得分:1)
$(this)
指的是jQuery对象,而不是元素的值。您需要先通过$.val()
方法获取值。
这样做:
if ($(this).val().length > 2) { ... }
或者@Taplar建议,您只需访问this.value
属性(this
将引用第一个匹配的元素)。这样可以加快代码的速度,因为您不会创建新的jQuery对象实例。
if (this.value.length > 2) { ... }
答案 1 :(得分:1)
我只是使用this.value
而不是制作一个不必要的jQuery对象。同样使用input
事件只会在值发生变化时触发逻辑,而不会触发其他键,如箭头键和其他不会实际更改值的键。
$('input[type="text"]').on('input', function(){
console.log(this.value.trim().length > 2 ? 'yeah' : 'no');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" />
<input type="text" />
<input type="text" />
答案 2 :(得分:0)
$('input[type="text"]').on('keyup', function(){
if($(this).val().length > 2){
console.log('yeah')
} else {
console.log('no');
}
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" />
<input type="text" />
<input type="text" />
&#13;