0

我有输入文本元素,我想要:当我在这个输入中写一些符号时,警告这个符号,即如果我写符号“a”,立即警告(“a”),如何做到这一点?我在尝试,但它不起作用

$("input").on("keypress", function () {
                setTimeout (function () {               
                    var search_word =  $(this).val();
                    if ( search_word.length > 0 ) {
                        alert(search_word);
                    }
                },200);
            });
4

3 回答 3

2
$("input").on("keypress", function (e) {
    alert(String.fromCharCode(e.which));
});
于 2012-08-01T14:20:19.620 回答
1

您遇到了变量范围的问题。this指内部功能..

改用这个:

$("input").on("keypress", function () {
    var that = this;
    setTimeout (function () {               
        var search_word =  $(that).val();
        if ( search_word.length > 0 ) {
            alert(search_word);
        }
    },200);
});​

JSFIDDLE

于 2012-08-01T14:20:09.707 回答
1

您可以使用 keyup,它在输入获得值后触发,因此您不需要超时。 http://jsfiddle.net/yF2hU/

$('#foo').bind('keyup', function(e) {
    alert($(this).val());
});​
于 2012-08-01T14:23:24.953 回答