我有一个asp.net文本框,除了%之外不允许使用特殊字符。我想在服务器端验证这一点。我写了代码。但是这个正则表达式没有用。我用Javascript编写了这段代码。但问题是它没有验证服务器端。请参阅代码供您参考。
<script type="text/javascript">
$(document).ready(function (e) {
$('#ctl00_topNavigation_txtSearch').bind('keypress', function (event) {
if (event.which == 13 || event.keyCode == 13) {
window.location.href = "search.aspx?tx=" + $(this).val();
return false;
} else {
var regex = new RegExp("^[.a-zA-Z0-9\b _ _%]+$");
var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);
if (!regex.test(key)) {
event.preventDefault();
return false;
}
}
return true;
});
$('#ctl00_topNavigation_txtSearch').bind("cut copy paste", function (e) {
e.preventDefault();
});
});
另请参阅搜索文本框的html
<asp:TextBox ID="txtSearch" runat="server" class="txtfld-search"></asp:TextBox>
请帮助,以便我可以验证服务器端。
答案 0 :(得分:2)
服务器端验证:
<asp:TextBox ID="txtSearch" runat="server" class="txtfld-search"></asp:TextBox>
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server"
ControlToValidate="txtSearch" ErrorMessage="*" ValidationGroup="req"
ValidationExpression="^[.a-zA-Z0-9\b _ _%]+$"></asp:RegularExpressionValidator>
<强>更新强>
使用 Javascript 验证服务器验证程序控制:
$(document).ready(function() {
$('#txtSearch').bind('keypress', function(event) {
if (Page_ClientValidate("req")) //req is the ValidationGroup name
{
//alert("valid");
}
else {
//alert("Invalid");
}
});
});
此代码可以正常测试!
注意:“req”是RegularExpression验证器的ValidationGroup名称! 希望这能帮到你!