当用户在搜索框中输入第一个字符@
或#
时,是否可以发现jQuery,无论他们使用什么键盘语言或设置,都会提示警告?< / p>
例如,如果我在搜索框中输入@
,我希望它能够提示消息或执行我的操作。
<input type='text' name='search' id='search' />
jQuery
$("#search").keydown(function(event) {
alert(event.which);
});
答案 0 :(得分:2)
如果你想测试输入中的第一个字符是否是其中一个字符,那么不要测试刚输入的字符,测试第一个字符:
$("#search").on("blur", function() {
if (/^[@#]/.test(this.value))
alert("@ or # entered.");
});
请注意,最好在模糊(甚至提交表单)而不是每次击键时都这样做,因为这样会对用户不那么烦恼,因为它可以应对复制/粘贴或拖动' n'drop。
答案 1 :(得分:1)
只有keypress
event报告event.which
的可靠值:http://jsfiddle.net/QDCvG/
$("#search").keypress(function(event) {
// @ = 64, # = 35
if ((this.value.length === 0 || this.selectionStart === 0)
&& (event.which === 64 || event.which === 35)) {
// keypress fires before the field is populated
}
});
String.fromCharCode(event.which)
可用于获取键入的字符。
答案 2 :(得分:1)
您必须将事件更改为绑定keyup
,即使释放了两个键,它也会触发事件。 .charAt(0)
方法将检查输入框的第一个字符。
$("#search").keyup(function(event) {
var curKey = $(this).val();
if (curKey.charAt(0) == '@' || curKey.charAt(0) == '#')
{
alert('@ or # typed first!');
}
});