我正在使用javascript来禁止用户在文本框中使用特殊字符。但我想允许用户在文本框中使用短划线( - )。请更新我的功能。
禁止允许用户使用特殊字符
function alpha(e) {
var k;
document.all ? k = e.keyCode : k = e.which;
return ((k > 64 && k < 91) || (k > 96 && k < 123) || k == 8 || k == 32 || (k >= 48 && k <= 57));
}
仅允许数字
function isNumberKey(evt) {
var charCode = (evt.which) ? evt.which : evt.keyCode;
if (charCode != 46 && charCode > 31
&& (charCode < 48 || charCode > 57))
return false;
return true;
允许在第一个函数中使用短划线( - )的键码是什么?
答案 0 :(得分:1)
这是一个javascript keyCode列表:http://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes。
Dash KeyCode为189( - 来自键盘)或109( - [减号 - 从键盘中减去])。
Dash的CharCode为45。
以下是对KeyCode&amp; Key的描述。 CharCode表示:keycode and charcode
在这里你可以测试keydown,keypress,keyup事件。 http://www.quirksmode.org/js/keys.html
因此,如果您在keydown事件上应用alpha函数,则必须相应地更改它:
function alpha(e) {
var k;
document.all ? k = e.keyCode : k = e.which;
// UPDATED - is CHARCODE
return ((k > 64 && k < 91) || (k > 96 && k < 123) || k == 8 || k == 32 || (k >= 48 && k <= 57) || k == 45);
}
取决于你是想要减号还是破折号或只是其中之一。
答案 1 :(得分:0)
Dash密钥代码为189。
但您的代码使用char代码更难维护,您应该考虑使用命名常量代替数字。