Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 搜索文本框需要服务器端验证_Javascript_Jquery_Asp.net - Fatal编程技术网

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

Javascript 搜索文本框需要服务器端验证,javascript,jquery,asp.net,Javascript,Jquery,Asp.net,我有一个asp.net文本框,它不允许除%以外的特殊字符。我想在服务器端验证这一点。我已经写了代码。但这方面的正则表达式不起作用。我已经用Javascript编写了这段代码。但问题是它没有验证服务器端。请参阅代码以供参考 <script type="text/javascript"> $(document).ready(function (e) { $('#ctl00_topNavigation_txtSearch').bind('keypress', function (e

我有一个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();
        });
    });

$(文档).ready(函数(e){
$('#ctl00_topNavigation_txtSearch').bind('keypress',函数(事件){
if(event.which==13 | | event.keyCode==13){
window.location.href=“search.aspx?tx=”+$(this.val();
返回false;
}否则{
var regex=新的RegExp(“^[.a-zA-Z0-9\b_uz%]+$”;
var key=String.fromCharCode(!event.charCode?event.which:event.charCode);
如果(!正则表达式测试(键)){
event.preventDefault();
返回false;
}
}
返回true;
});
$('#ctl00_topNavigation_txtSearch').bind(“剪切复制粘贴”,函数(e){
e、 预防默认值();
});
});

另外,请参见搜索文本框的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-9\b _ _%]+$"></asp:RegularExpressionValidator>
$(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名称!
希望这对你有帮助

如果您想使用asp.net框架在服务器端执行某些代码,那么您的代码不能使用JavaScript。我添加了更相关的[asp.net]标记。“我已经用Javascript编写了该代码。但问题是它没有验证服务器端。”从什么时候开始使用js在服务器端进行验证?使用
RegularExpressionValidator
。ID未验证正则表达式。“ID未验证正则表达式”?是否要在单击按钮时验证文本框?或者在按键时,您想运行服务器端验证吗?请说清楚!不要说“服务器验证”“不工作”等等!实际上,在放入RegularExpressionValidator之后,代码似乎无法工作。请看js提琴你的提琴没有在屏幕上显示任何东西(文本框)没有呈现:(现在检查:我已经将文本框类型从asp更改为input