如何在文本框中的asp.net(C#)中仅禁用(a-zA-Z)?
答案 0 :(得分:4)
您可以使用ASP.NET验证控件来限制文本框在提交时接受的值。我建议使用RegularExpressionValidator
。
这种方法的好处是它可以在服务器和客户端上工作,确保输入在服务器上处理时有效。在服务器端,只需确保调用页面的Validate
方法,并在处理文本框的值之前检查页面是否有效(IsValid
)。
您可以将此方法与 safi 提及的AJAX控件工具包(或jQuery插件)结合使用,以改善最终用户的体验。
使用ASP.NET RegularExpressionValidator
看起来像这样:
<asp:TextBox id="textBoxToValidate" runat="server"/>
<asp:RegularExpressionValidator id="regularExpressionValidator" ControlToValidate="textBoxToValidate" ValidationExpression="[^a-zA-Z]*" Display="Static" ErrorMessage="Alphabet characters are not allowed" runat="server"/>
然后在服务器端:
private void Page_Load(Object sender, EventArgs e)
{
Validate(); // force server-side validation controls to validate
if (IsValid)
{
// validation successful
// you can safely use textBoxToValidate.Text
}
}
答案 1 :(得分:1)
当用户在文本框中输入内容时,您可以检查关键代码。 例如:
function checknumber(e, control) {
isIE = document.all ? 1 : 0
keyEntry = !isIE ? e.which : event.keyCode;
if ((keyEntry > '47') && (keyEntry < '58'))
return true;
else if (keyEntry == '8')
return true;
else if (keyEntry == '46')
return false;
else
return false;
}
然后按下按键调用此功能:
onkeypress="return checknumber(event, this);"
此代码仅允许文本框中的数字。您可以根据需要进行更改。
答案 2 :(得分:0)
虽然您可以通过javascript禁止客户端,但不建议仅使用客户端验证。只需应用您的验证服务器端,只有这样才能确保您只得到您想要的。
答案 3 :(得分:0)
在这里你可以看到在asp.net中使用ajax你可以限制你想要在文本框中的数据类型
http://www.asp.net/AJAX/AjaxControlToolkit/Samples/FilteredTextBox/FilteredTextBox.aspx
答案 4 :(得分:0)
在javascript中使用,代码有点类似
function isCharacter(evt) {
var charCode = (evt.which) ? evt.which : event.keyCode
if (charCode >= 65 && charCode <= 90) {
return false;
}
else if (charCode >= 97 && charCode <= 122) {
return false;
}
return true;
}
如果您不知道我正在传递Textbox onkeypress事件代码
onkeypress="return isCharacter(event)"