自定义验证器在点击页面上的所有控件时被调用

本文关键字:控件 调用 验证 自定义 | 更新日期: 2023-09-27 17:59:32

我编写了一个自定义验证函数来检查是否显示面板
我想在点击NEXT按钮时调用该函数。

但相反,它会在点击页面上的每个按钮时被调用。

这是代码:

 function Validate(sender, args)
    {
        if (document.getElementById("Panel1").style.display == 'none') {
                args.IsValid = false;
        }
        else {
                args.IsValid = true;
            }
    }

这是应该调用的按钮代码onclick。

<asp:Button ID="btnNext" runat="server" Text="Next" Font-Bold="True" CssClass="InputButton" OnClick="btnNext_Click" />
<asp:CustomValidator ID="cvValidate" runat="server" ErrorMessage="Panel has no data." ClientValidationFunction="Validate" Display="none" EnableViewState="false"></asp:CustomValidator>

如果我设置Controltovalidate="btnNext",那么它再次向我抛出错误。"btnNext无法验证"

自定义验证器在点击页面上的所有控件时被调用

您需要将它挂接到正确的元素。

document.getElementById("btnNext").onclick = function() { //Do Your Stuff Here };

Angela

嘿,我对我的问题做了一个非常简单的解决方案。首先是ws在页面上单击evry按钮时调用的java脚本代码。

      function Validate(sender, args)
    {
        if (document.getElementById("Panel1").style.display == 'none') {
                args.IsValid = false;
        }
        else {
                args.IsValid = true;
            }
    }

然后点击下一步按钮:

<asp:Button ID="btnNext" runat="server" Text="Next" Font-Bold="True" CssClass="InputButton" OnClick="btnNext_Click" />
<asp:CustomValidator ID="cvValidate" runat="server" ErrorMessage="Panel has no data." ClientValidationFunction="Validate" Display="none" EnableViewState="false"></asp:CustomValidator>

对于其余的按钮,我设置了causesvalidation=false属性。有了这个,函数wwas只能在"下一步"按钮上调用