我有以下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;
}
}
答案 0 :(得分:2)
有两种方法可以做到这一点
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
中,您可以使用正则表达式检查文本框值,并使用正则表达式对其进行验证。
答案 1 :(得分:1)
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>
答案 2 :(得分:0)
要验证在编辑控件中输入的键/文本,建议使用正则表达式。请参阅:http://www.9lessons.info/2009/03/perfect-javascript-form-validation.html,了解一些此类验证示例的演示。
但是,仅使用浏览器停止验证并不是一个好习惯。始终在服务器端进行验证。这是因为可以在浏览器中禁用JavaScript,这可以允许未经验证的数据发布到服务器。
答案 3 :(得分:0)
我这样做是我做的。现在这只取得(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;
}