如何在 ASP.NET 中阻止特定的章程输入
how to block specific charter inputs in ASP.NET
我有下面的 asp.net 代码来获取用户输入,然后使用下面的 javascript 我确保它不会被用户留空。现在我想要做的是使用相同的 javascript 阻止用户输入少数字符,例如 (|,@,#,$)。关于我该怎么做的任何建议?
<asp:TextBox ID="txtAccountName" runat="server" Width="100%" CssClass="input" Enabled="False" onblur="CheckTxtBox(this);"></asp:TextBox>
function CheckTxtBox(sender) {
if (sender.value == "") {
alert("Please enter Address 1");
return false;
}
}
有两种方法可以做到这一点
1) In "keypress" event.Check the user press a character like (|,@,#,$)then stop them right there
2) "onblur" event: when the input element loses focus, validate its contents. If the value is invalid, display a message
备注
第二种方法更好,因为如果用户正在复制粘贴内容,那么第一种方法将无法捕获它们
第一种方法
function CheckTxtBox(e) {
var evt = (e) ? e : window.event;
var charCode = (evt.keyCode) ? evt.keyCode : evt.which;
if (//charactercode of the keys as condition) {
return false;
}
return true;
};
第二种方法
在您的 onblur event
中,您可以使用正则表达式检查文本框值并使用正则表达式对其进行验证。
要验证在编辑控件中输入的 keys/text,建议使用正则表达式。看一下:http://www.9lessons.info/2009/03/perfect-javascript-form-validation.html 一些此类验证示例的演示。
但是,单独使用浏览器停止验证并不是一个好习惯。始终在服务器端进行验证。这是因为 JavaScript 可以在浏览器中禁用,这可能允许将未经验证的数据发布到服务器。
function CheckTxtBox(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));
}
您的 asp 控件:
<asp:TextBox ID="txtAccountName" runat="server" Width="100%" CssClass="input" Enabled="False" onkeypress="return CheckTxtBox(event)""></asp:TextBox>
我做到了这里就是我所做的。现在这只需要 (A-Z) 中的大写字符和 (1-9) 中的数字。感谢大家的帮助。非常感谢。
<asp:TextBox ID="txtAccountName" runat="server"
Width="100%" CssClass="input" Enabled="False" onkeypress="return isNumber(event);"></asp:TextBox>
// this JS validates and prevent inputting symbols
function isNumber(evt) {
evt = (evt) ? evt : window.event;
var charCode = (evt.which) ? evt.which : evt.keyCode;
if (charCode > 31 && (charCode < 65 || charCode > 90) && (charCode < 48 || charCode > 57)) {
return false;
}
return true;
}
我有下面的 asp.net 代码来获取用户输入,然后使用下面的 javascript 我确保它不会被用户留空。现在我想要做的是使用相同的 javascript 阻止用户输入少数字符,例如 (|,@,#,$)。关于我该怎么做的任何建议?
<asp:TextBox ID="txtAccountName" runat="server" Width="100%" CssClass="input" Enabled="False" onblur="CheckTxtBox(this);"></asp:TextBox>
function CheckTxtBox(sender) {
if (sender.value == "") {
alert("Please enter Address 1");
return false;
}
}
有两种方法可以做到这一点
1) In "keypress" event.Check the user press a character like (|,@,#,$)then stop them right there
2) "onblur" event: when the input element loses focus, validate its contents. If the value is invalid, display a message
备注
第二种方法更好,因为如果用户正在复制粘贴内容,那么第一种方法将无法捕获它们
第一种方法
function CheckTxtBox(e) {
var evt = (e) ? e : window.event;
var charCode = (evt.keyCode) ? evt.keyCode : evt.which;
if (//charactercode of the keys as condition) {
return false;
}
return true;
};
第二种方法
在您的 onblur event
中,您可以使用正则表达式检查文本框值并使用正则表达式对其进行验证。
要验证在编辑控件中输入的 keys/text,建议使用正则表达式。看一下:http://www.9lessons.info/2009/03/perfect-javascript-form-validation.html 一些此类验证示例的演示。
但是,单独使用浏览器停止验证并不是一个好习惯。始终在服务器端进行验证。这是因为 JavaScript 可以在浏览器中禁用,这可能允许将未经验证的数据发布到服务器。
function CheckTxtBox(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));
}
您的 asp 控件:
<asp:TextBox ID="txtAccountName" runat="server" Width="100%" CssClass="input" Enabled="False" onkeypress="return CheckTxtBox(event)""></asp:TextBox>
我做到了这里就是我所做的。现在这只需要 (A-Z) 中的大写字符和 (1-9) 中的数字。感谢大家的帮助。非常感谢。
<asp:TextBox ID="txtAccountName" runat="server"
Width="100%" CssClass="input" Enabled="False" onkeypress="return isNumber(event);"></asp:TextBox>
// this JS validates and prevent inputting symbols
function isNumber(evt) {
evt = (evt) ? evt : window.event;
var charCode = (evt.which) ? evt.which : evt.keyCode;
if (charCode > 31 && (charCode < 65 || charCode > 90) && (charCode < 48 || charCode > 57)) {
return false;
}
return true;
}