3

我正在编写一个函数,当键盘上的键按下时将调用该函数如何访问按下该键的文本框的值。我的代码是

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);

如何获取当前从键盘输入的文本框的值?请指导如何做到这一点

4

5 回答 5

5

我建议:

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);

JS 小提琴演示

只要事件对函数可用,您就可以使用适当命名的 访问该事件的目标event.target。如果您需要将其作为 jQuery 对象,可以访问 jQuery 方法,您可以使用:$(event.target).

您还可以使用:

self = evt.currentTarget;

JS 小提琴演示

或者:

self = document.activeElement;

JS 小提琴演示

参考:

于 2013-07-12T09:04:31.793 回答
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);

演示:小提琴

于 2013-07-12T09:02:50.540 回答
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

于 2013-07-12T09:07:05.737 回答
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);.

于 2013-07-12T09:12:54.533 回答
0

您可以使用获取当前元素$(this)

$(document).on('keydown','.is_valid',isValid){
alert($(this).val());

 //and  do stuff here 

}
于 2013-07-12T09:01:30.377 回答