用js更改字符代码并显示新字符
changing character code with js and show the new character instead
我想写一个代码,如果用户按下某个键,它会更改user事件的keyCode或charCode,并用新的charCode 触发该事件
我用jsfiddle编写了这段代码,但由于递归太多,这段代码不起作用。
function convert(e, elem) {
function getKey(event) {
if (event.which == null) {
return event.keyCode // IE
} else if (event.which != 0 && event.charCode != 0) {
return event.which // the rest
} else {
return null // special key
}
}
var key = getKey(e);
key++;
return key;
}
$(".myInput").keypress(function (e) {
var returnedKey = convert(e, this);
e.which = e.keyCode = returnedKey;
$(this).trigger(e);
});
<input type="text" class="myInput" />
任何有助于我的代码工作的想法都将不胜感激。
非常感谢。
关于递归问题,您需要添加一个停止条件,例如:
$(".myInput").keypress(function (e) {
var returnedKey = convert(e, this);
e.which = e.keyCode = returnedKey;
if(!e.isSecondTrigger){
e.isSecondTrigger = true;
$(this).trigger(e);
}});
这样,您只需更改一次值。然而,正如LShetty在评论部分所说,事件值是只读的——你不能更改已经按下的按钮的值,这样就可以更改输入文本。为此,您需要在每次用户操作后手动更改输入文本的值(即,在每次按键时保持输入文本的数值,在用户按键时对其进行修改,然后用输出覆盖输入字段值)。
相关文章:
- 每次在输入中键入新字符时更新查询
- Regex查找前面没有特定字符的字符
- 用js更改字符代码并显示新字符
- Regex表达式,用于替换两个字符(包括字符)之间的字符串
- 如何全局替换不在前面加[字符]的字符
- 删除错误.MongooDB + Express.传入的参数必须是 12 个字节的单个字符串或 24 个十六进制字符的字符
- 确定 RICHT 文本编辑器中每个字符的字符样式
- 自动删除新字符 JavaScript
- JavaScript中(字符空间字符)或(空格字符空格)的表达式是什么
- 通过某些特殊字符或字符序列进行拆分来解析JSON输出
- 替换'和(JS中具有特殊字符的字符
- 替换前面或后面没有相同字符的字符
- 正则表达式:在字符或字符和行尾之间获取字符串
- 从占转义字符的字符数组创建字符串
- 在Javascript中使用regex或indexOf更改字符串中的特定字符(转义字符)
- Jquery字符超过字符,则显示正值
- Javascript Regex-用相同数量的另一个字符替换字符序列
- 如何匹配前面没有特定字符的字符序列
- 如何在javascript的循环中每行添加一个新字符
- 匹配后面没有另一个特定字符的字符