需要搜索文本框的服务器端验证

时间:2014-07-01 08:26:01

标签: javascript jquery asp.net

我有一个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>

请帮助,以便我可以验证服务器端。

1 个答案:

答案 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名称! 希望这能帮到你!

相关问题