我有一个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-9b _ _%]+$");
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>
请帮忙,这样我可以验证它的服务器端
服务器端验证:
<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-9b _ _%]+$"></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"是正则表达式验证器的ValidationGroup名称!希望这对你有所帮助!