我想获取文本的值,包括keydown事件中的字符。
$(".searchfield").keydown(function(e) {
if (e.which >= 32 || e.which < 127) {
var c = String.fromCharCode(e.which);
callSearch($(this).val() + c));
}
});
它适用于角色,数字和所有基本角色。 32-127 ASCII范围。
如果文本框具有多语言输入,我不确定这是否有效。非英文字符。
有人可以分享他们的经历吗?
谢谢,
答案 0 :(得分:1)
我有类似的需求(包括keydown键)。我的解决方案只是使用.keyup
事件。它将包括最后一个字符。
$(".searchfield").keyup(function(e) {
if (e.which >= 32 || e.which < 127) {
var c = String.fromCharCode(e.which);
callSearch($(this).val());
}
});
希望这有帮助。
答案 1 :(得分:-1)
嗯,也许你应该把你不想触发这个功能的角色,比如0-31 ascii字符并接受所有其他角色?
答案 2 :(得分:-1)
这将涵盖西班牙语:
$(".searchfield").bind("keypress", function(event) {
var save = false;
if (window.event) { event = window.event; }
if (event.keyCode >= 32 && event.keyCode <= 126) { save = true; }
else if (event.keyCode == 259) { save = true; } // Y
else if (event.keyCode >= 192 && event.keyCode <= 197) { save = true; } // A
else if (event.keyCode >= 200 && event.keyCode <= 203) { save = true; } // E
else if (event.keyCode >= 204 && event.keyCode <= 207) { save = true; } // I
else if (event.keyCode == 209) { save = true; } // Ñ
else if (event.keyCode >= 210 && event.keyCode <= 214) { save = true; } // O
else if (event.keyCode >= 217 && event.keyCode <= 220) { save = true; } // U
else if (event.keyCode == 221) { save = true; } // Y
else if (event.keyCode >= 224 && event.keyCode <= 229) { save = true; } // a
else if (event.keyCode >= 232 && event.keyCode <= 235) { save = true; } // e
else if (event.keyCode >= 236 && event.keyCode <= 239) { save = true; } // i
else if (event.keyCode == 241) { save = true; } // ñ
else if (event.keyCode >= 242 && event.keyCode <= 246) { save = true; } // o
else if (event.keyCode >= 249 && event.keyCode <= 252) { save = true; } // u
else if (event.keyCode == 253) { save = true; } // y
else if (event.keyCode == 255) { save = true; } // y
if (save){
var c = String.fromCharCode(event.keyCode);
callSearch($(this).val() + c));
}
});