使用JavaScript检测输入的字符
Detect entered character with JavaScript
我想在用户键入"@"时启动一个操作(启用自动完成)。我有jQuery可用。
通常在QWERTY键盘上,它是这样的:
$('textarea').live('keydown', function(e) {
if (e.which === 50) {
console.log('@ has been entered.');
}
});
但是,它在AZERTY键盘上无法正常工作。密钥Code=50对应于é~>22密钥。要在AZERTY键盘中键入"@",请使用AltGr+à@/0 编辑:当输入@时,自动完成开始,并且仅在此之后。例如,当有人输入"Hello@"时,它就开始了,但当他输入"Hello@nothingother"时,完整的不会起任何作用。示例:http://mrkipling.github.com/jQuery-at-username/(仅适用于QWERTY键盘)。
使用keypress
而不是keydown
。虽然keydown
与每次按键有关,但keypress
与翻译的字符有关,因此例如,当按下shift键时,a
可以不同于a
,组合字符工作,死键工作,以及键盘映射中的其他差异都得到处理。
检查@
是否作为字段值的最后一个字符输入?
$("body").on("keyup", "textarea", function(e) {
if (this.value.indexOf("@") == this.value.length - 1) {
console.log("Starting autocomplete");
}
});
演示:http://jsfiddle.net/FKhPW/2/
使用event.key
和现代JS,直接检查@
不再有数字代码。你们可以直接检查钥匙。
const input = document.getElementById("textarea");
input.addEventListener("keydown", function (event) {
if (event.key === "@") {
// Do something
}
});
Mozilla文档
支持的浏览器
唯一想到的其他选项是一个检查文本输入内容的计时器。
var patt=new RegExp(/^@/);
var charCheck = setInterval(function(){
if (patt.test($("#textInput").val())){
// initiate autocomplete
}
},100);
此代码将检查#textInput
元素的内容,并查看它是否与字符串开头的@
符号的正则表达式匹配。如果是,test()
函数将评估为true,您可以启动自动完成代码。
开始工作演示:http://jsfiddle.net/LxpQQ/
根据我的旧回复:
jquery使用'@';
希望它能适合你,因为:)
代码
source: function(request, response) {
if (request.term.indexOf("@") >= 0) {
$("#loading").show();
getTags(extractLast(request.term), function(data) {
response($.map(data.tags, function(el) {
return {
value: el.name,
count: el.count
}
}));
$("#loading").hide();
});
}
},
相关文章:
- 如何为jQuery屏蔽输入插件创建一个允许字母数字、空格和重音字符的掩码
- 使用正则表达式将输入格式设置为单字符逗号、单字符逗号等
- 带静态字符e输入的文本框数字和带javascript的负整数
- HTML输入中不可更改的前导字符
- 如何限制一个字段只接受4个数字字符作为输入,并获得'It’这是潜水警报
- 在每个字符输入后,使密码文本框值可见
- 如何使用JQuery检查输入(电子邮件)字段是否包含特殊字符
- 每次在输入中键入新字符时更新查询
- 使用dojo按键事件时无法避免最后一个字符输入
- 轻量级 Javascript 表过滤器,以最少的字符输入显示结果
- 在输入框中设置“最小”字符输入抛出 javascript
- 选中textebox上的字母数字或特殊字符输入
- 如何预测DOM按下键是否会导致字符输入
- WebSQL | SQLite -插入"?字符输入数据库
- 用于Alpha数字,无空格和9个字符输入的正则表达式
- 如何防止将无效字符输入到表单中?
- 如何使用javascript或jquery限制字段中字符输入的数量
- jQuery验证给出错误的每个字符输入
- 在某些字符输入角度后显示搜索结果
- 如何将keypress和event.prventDefault()一起用于限制字符输入