我正在编写一个函数,当按键在键盘上按下时将调用该函数如何访问按下该键的文本框的值。 我的代码是
function isValid(evt,that){
console.log('coming to this 1');
var charCode = (evt.which) ? evt.which : event.keyCode;
console.log(that.val());
return true;
}
$(document).on('keydown','.is_valid',isValid);
如何获取当前从键盘输入的文本框的值?请指南如何完成这个
答案 0 :(得分:2)
我建议:
function isValid(evt) {
var charCode = (evt.which) ? evt.which : event.keyCode,
self = evt.target;
console.log(self.value);
return true;
}
$(document).on('keydown', '.is_valid', isValid);
只要该事件可用于该函数,您就可以使用具有适当名称的event.target
访问该事件的目标。如果您需要将其作为jQuery对象,可以使用:$(event.target)
来访问jQuery方法。
你也可以使用:
self = evt.currentTarget;
或者:
self = document.activeElement;
参考文献:
答案 1 :(得分:0)
您可以使用$(this)
$(document).on('keydown','.is_valid',isValid){
alert($(this).val());
//and do stuff here
}
答案 2 :(得分:0)
this
将指向目标元素
function isValid(evt,that){
var charCode = (evt.which) ? evt.which : event.keyCode;
console.log('log', $(this).val(), charCode);
return true;
}
$(document).on('keydown','.is_valid',isValid);
演示:Fiddle
答案 3 :(得分:0)
将that.val()
更改为$(this).val()
function isValid(evt) {
console.log('coming to this 1');
var charCode = (evt.which) ? evt.which : event.keyCode;
console.log($(this).val()); // change that to $(this)
return true;
}
$(document).on('keydown', '.is_valid', isValid);
运作良好。查看JSFiddle
答案 4 :(得分:0)
有几种不同的方法可以解决这个问题。以下是三个例子:
function isValid(evt) {
// if you use 'this', you don't need to pass 'evt' to the function
console.log(this.value);
// you can reference the event target
console.log(evt.target.value);
// you can reference the event's current target
console.log(evt.currentTarget.value);
return true;
}
$(document).on('keydown', '.is_valid', isValid);
这些都会为您提供文本框的价值。
如果您想查看可能的其他选项,console.log(evt);
。