【发布时间】:2017-03-24 10:17:24
【问题描述】:
我在 ASP.NET 中有一个文本字段,我想在其中只允许字母数字和正斜杠 (/) 键。我尝试了以下代码,
function jsCheckInput(e) {
var evt = (e) ? e : window.event;
var key = (evt.keyCode) ? evt.keyCode : evt.which;
if (key != null) {
key = parseInt(key, 10);
if (key < 47 || (key > 57 && key < 65) || (key > 90 && key < 97) || key > 122) {
if (!jsIsUserFriendlyChar(key)) {
return false;
}
}
else {
if (evt.shiftKey) {
return true;
}
}
}
return true;
}
function jsIsUserFriendlyChar(val) {
// Backspace, Tab, Enter, Insert, and Delete
if (val == 8 || val == 9 || val == 13 || val == 45 || val == 46) {
return true;
}
// Ctrl, Alt, CapsLock, Home, End, and Arrows
if ((val > 16 && val < 21) || (val > 34 && val < 41)) {
return true;
}
return false;
}
在我添加的网页表单页面中,如下所示,
<asp:TextBox ID="text_value" CssClass="textbox" onkeydown="return jsCheckInput(event);" runat="server"></asp:TextBox>
在这里我可以输入字母和数字,但我无法输入值/。我已经启用了 shift 键,所以我可以给shift + ? 输入正斜杠。另一个问题是当我按 shift + 任何数字键时,那里的特殊字符(如 ! @ # $ % ^ & * ( ) ...)也会出现在 tet 字段中。我在这里做错了什么?
【问题讨论】:
-
使用正则表达式
-
这个答案可以帮到你:stackoverflow.com/questions/469357/…
标签: javascript jquery html asp.net keyboard