Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.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 asp net客户端验证的验证事件_Javascript_Asp.net_Validation - Fatal编程技术网

Javascript asp net客户端验证的验证事件

Javascript asp net客户端验证的验证事件,javascript,asp.net,validation,Javascript,Asp.net,Validation,我想知道是否有办法将自定义函数连接到asp net客户端验证事件,这样每当任何控件触发验证时,我都可以在客户端UI上发挥一些魔力 我正在寻找一种通用方法来截获页面验证事件,而不必在每个导致回发的控件上设置它 谢谢你们 编辑: 我最终得到了这个函数:(感谢@Kirk) 要执行此操作,可以在submit按钮上放置OnClientClick事件,或者仅在常规表单提交事件上放置OnClientClick事件 然后,您可以将客户端验证对象模型与验证程序控件一起使用。这实际上允许您验证已设置的每个验证控件。

我想知道是否有办法将自定义函数连接到asp net客户端验证事件,这样每当任何控件触发验证时,我都可以在客户端UI上发挥一些魔力

我正在寻找一种通用方法来截获页面验证事件,而不必在每个导致回发的控件上设置它

谢谢你们

编辑:

我最终得到了这个函数:(感谢@Kirk)


要执行此操作,可以在submit按钮上放置OnClientClick事件,或者仅在常规表单提交事件上放置OnClientClick事件

然后,您可以将
客户端验证对象模型
与验证程序控件一起使用。这实际上允许您验证已设置的每个验证控件。您可以从与页面相关的客户端检查几个值,请参阅

使用
isvalid
属性引用每个控件。比如说

<asp:Label id="lblZip" runat="server" Text="Zip Code:" />
<asp:TextBox id="txtZip" runat="server" /></asp:TextBox>
<asp:RegularExpressionValidator id="valZip" runat="server"
   ControlToValidate="txtZip"
   ErrorMessage="Invalid Zip Code" 
   ValidationExpression="[0-9]{5}" />

<script language=javascript>
// Call this function to do something
function txtZipOnChange() {
   // Do nothing if client validation is not active
   if (typeof(Page_Validators) == "undefined")  return;
       // Change the color of the label
       lblZip.style.color = valZip.isvalid ? "Black" : "Red";
}
</script>
了解更多细节

希望这能帮你找到你需要去的地方。如果没有,请随时询问

之前的评论 您可以使用
onClientClick
并附加JavaScript函数

如果您想使用jQuery,可以使用
clientdmode
您可以更容易地找出控件ID

请看。

//Page\u Validators是页面中的一组验证控件。
if(Page\u Validators!=未定义&&Page\u Validators!=空)
{ 
//在整个验证集合中循环。

对于(var i=0;这是一个我可以使用的方法,但我需要在每个导致回发的控件上设置t,我忘记了请求一个通用方法,请查看我的问题编辑,谢谢我已更新了答案。如果您需要关于如何执行此操作的任何其他说明,请告诉我。谢谢您,我认为表单提交事件是我需要的,我我会尝试一下,让你知道我很乐意提供帮助。如果你能将此标记为答案,我将不胜感激。我是新来的,需要在这里尝试发布和投票。你尝试过Ajax更新面板吗?请尝试至少包含你链接到的信息摘要,而不是在网站上发布链接。
<asp:Label id="lblZip" runat="server" Text="Zip Code:" />
<asp:TextBox id="txtZip" runat="server" /></asp:TextBox>
<asp:RegularExpressionValidator id="valZip" runat="server"
   ControlToValidate="txtZip"
   ErrorMessage="Invalid Zip Code" 
   ValidationExpression="[0-9]{5}" />

<script language=javascript>
// Call this function to do something
function txtZipOnChange() {
   // Do nothing if client validation is not active
   if (typeof(Page_Validators) == "undefined")  return;
       // Change the color of the label
       lblZip.style.color = valZip.isvalid ? "Black" : "Red";
}
</script>
//Page_Validators is an array of validation controls in the page. 
if (Page_Validators != undefined && Page_Validators != null) 
{ 
    //Looping through the whole validation collection. 
    for(var i=0; i<Page_Validators.length; i++) 
    { 
        ValidatorEnable(Page_Validators[i]); 
        //if condition to check whether the validation was successfull or not. 
        if (!Page_Validators[i].isvalid) 
        { 
            break; 
        } 
    } 
}

//if condition to check whether the page was validated successfully. 
if(Page_IsValid) 
{ 
    alert('Success'); 
} 
else 
{ 
    alert('Failure'); 
}