根据字符在多个输入上添加删除类

时间:2017-11-01 18:21:42

标签: javascript jquery html

我要检查的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;

为什么会这样?

3 个答案:

答案 0 :(得分:1)

$(this)指的是jQuery对象,而不是元素的值。您需要先通过$.val()方法获取值。

这样做:

if ($(this).val().length > 2) { ... }

http://api.jquery.com/val/

或者@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)

&#13;
&#13;
$('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;
&#13;
&#13;