Numpad没有从CharCode中给出数字
Numpad not giving numbers in fromCharCode
我只想在输入字段中允许某些按键。
问题是String.fromCharCode
中的numpads值与实际字符不对应。。。
还有一点要注意,我的chrome将逗号(String.fromCharCode(188)
)翻译成"¼"——尽管它应该是","?
我是这样做的:
Javascript指令:
angular.module('LTS').directive('allowed', function () {
return {
restrict: 'A',
link: function (scope, element, attrs, modelCtrl) {
var allowedLowerCaseLetters = attrs.allowed.toLowerCase();
element.on('keydown', function (event) {
var pressedChar = String.fromCharCode(event.keyCode).toLowerCase();
if (event.keyCode === 188) {
pressedChar = ",";
}
if (allowedLowerCaseLetters.indexOf(pressedChar) > -1 || event.keyCode === 8 || event.keyCode === 37 || event.keyCode === 39) {
// console.log(pressedChar+" should be added to model.");
} else {
//TODO maybe add a notification ?
event.preventDefault();
}
});
}
};
});
HTML:
<input id="invoiceAmount" class="form-control importInput" type="text" ng-model="import.invoiceAmount" allowed="1234567890,">
小心Firefox的代码在"event.charCode"中,而不是按键上的keyCode
String.fromCharCode
和event.keyCode
不同。
String.fromCharCode
期望Unicode代码作为参数,然后返回与其相关联的字符。
按键事件中的event.keyCode
实现有点令人困惑,它们返回的是被按下按键的代码,而不是打印的字符的代码。然而,在按键事件中使用它将返回预期值和String.fromCharCode
中使用的正确值。
function f(e){
document.querySelector('div').innerHTML += e.type + ' - ' + e.keyCode + ' - ' + String.fromCharCode(e.keyCode) + '<br/>';
}
document.querySelector('input').addEventListener('keydown', f);
document.querySelector('input').addEventListener('keypress', f);
<input />
<div></div>
相关文章:
- 通过单击表单中的按钮,在代码生成中使用javascript生成字母数字代码
- 测试索引值是否等于某个数字的倍数
- 将数字转换为一定数量的硬币
- 键入最后一位数字后自动提交
- 如何在javascript中迭代数字列表
- Javascript逻辑运算符和字符串/数字
- 如何在javascript中获得与特定数字相等的随机数
- 如果元素's的ID以数字开头
- 递增一个数字而不去掉前导零
- 如何使用JavaScript查找1和N之间的所有数字的总和
- 如何在这里将两个值最低的数字相加
- 如何删除除冒号、数字和'上午'或者'下午'
- 如何为jQuery屏蔽输入插件创建一个允许字母数字、空格和重音字符的掩码
- Javascript排序字符串或数字
- 我想在AngularJS应用程序中创建一个输入数字框,用户不应该在该框上键入十进制数字.(一个整数输入框)
- 将数字四舍五入到小数点后两位
- 我如何在数字插入中使用逗号,这样它就不会'不要破坏我的输入字段
- 正则表达式与数字中的第二个点匹配
- 制作一个regex来验证只有一个数字的字符串
- Numpad没有从CharCode中给出数字