使用相同的类捕获输入's上的键码
Capture keycode on input's with same class
我有一个有许多文本输入的页面。由于许多原因,所有的输入都共享同一个类。
现在我试图捕获一个ESC按钮时,输入是集中和警报,如果输入有值或没有。
这在逻辑上只适用于第一个字段。在第一个字段之后,由于所有输入的共享相同的类,当我按ESC按钮时,它会给你第一个输入的值。
那么我怎么能说我正在谈论第二个,第五个或任何我按下ESC的输入呢?
下面是一个例子:http://jsfiddle.net/Y5e9W/
第一个输入工作正常,第二个输入思考;当你按ESC键时,它会给你第一个的值。
您应该能够将keyup
事件绑定到类的元素,而不是document
。那么this
将指向焦点元素:
$(".gp").keyup(function(e) {
if(e.which === 27) {
if(this.value.length > 0) {
//Has a value!
}
else {
//Empty!
}
}
});
这是一个更新的小提琴。注意,我使用了事件对象的which
属性,jQuery公开了该属性来处理keyCode
和charCode
之间的浏览器差异。
基于注释更新
如果您确实需要在document
级别处理此问题,您可以使用has
方法将.gp
元素的选择范围缩小到具有焦点的元素:
if (gj.has(":focus").val() != 0) { //...
你可以做-
$(".gp").keyup(function (e) {
if ($(this).is(":focus") && (e.keyCode == 27)) {
if ($(this).val() != 0){
alert('full');
$(this).val('');
}else{
alert('empty');}
}
});
它将只响应具有'gp'类的元素的keyup
事件,然后您可以使用this
访问相关元素。
Demo - http://jsfiddle.net/uqS72/2/
相关文章:
- JQuery 验证 - 如何检测“&”键(只允许“&”而不是“7”,因为两个键码都是“55”)
- Javascript键码在Firefox中不起作用,但在chrome中运行良好
- ASCII到键码转换器
- JAVASCRIPT - 在动态创建的编辑框中拦截键码 13(输入)并将元素传递给不同的函数
- 如何在单个条件下检测键码和单击事件
- JS键码是Safari手机是一样的
- 如何让我的键码聚焦元素
- Javascript键码冲突:“右箭头”和“单引号”
- 铬中“:”的键码是什么
- CTRL 键和箭头键允许输入
- 使用键码触发事件
- 键控输入未获取值
- 元键[退格键][ctrl][alt]的键码,带有大写和小写字母
- 在火狐中捕获键码值
- 使用“+”和“-”的键码
- 不能使用 jQuery 键码来更改元素的 CSS
- j查询逗号分隔的电话号码掩码输入
- 键码在铬扩展程序中不起作用
- 使用相同的类捕获输入's上的键码
- 为什么我的电脑显示我输入的键码是“W"在Javascript中为0