代码之家  ›  专栏  ›  技术社区  ›  si618

回发前如何在客户端调用RequiredFieldValidator

  •  6
  • si618  · 技术社区  · 14 年前

    我想做的是在用户选择另一个选项卡时在第一页上执行验证,从而防止他们在第一页有效之前移动到新选项卡。

    <ul>                        
         <li><a href="#tab1">Tab 1</a> </li>
         <li><a href="#tab2" onclick="return isValid();">Tab 2</a></li> 
         <li><a href="#tab3" onclick="return isValid();">Tab 3</a></li> 
    </ul>
    

    在哪里? isValid 需要启动验证器。

    谢谢!

    更新:

    <ul>                        
        <li><a id="tab1Tab" href="#tab1" style="display:none"/><a onclick="isValid('tab1');">Tab 1</a></li>
        <li><a id="tab2Tab" href="#tab2" style="display:none"/><a onclick="isValid('tab2');">Tab 2</a></li>
        <li><a id="tab3Tab" href="#tab3" style="display:none"/><a onclick="isValid('tab3');">Tab 3</a></li>
    </ul>
    
    function isValid(tab) {
        var valid = Page_ClientValidate();
        var tabId = (valid ? tab : "tab1") + "Tab";
        $("#" + tabId).click();
    }
    

    注意使用jQuery与click事件的跨浏览器兼容性。这只适用于其他选项卡上没有验证器的情况,根据Thomas的回答,我需要在中使用验证组和额外的逻辑 是否有效 如果有的话。

    2 回复  |  直到 14 年前
        1
  •  2
  •   Dean Harding    14 年前

    Page_ClientValidate 您可以调用它来启动验证程序:

    function isValid() {
        return Page_ClientValidate();
    }
    
        2
  •  2
  •   Thomas    14 年前

    您可以尝试对每个选项卡使用验证组。在从一个选项卡单击到另一个选项卡时,您可以调用类似这样的名称,其中选项卡名称表示验证组:

    function TabValidate( tabName ) {
        if ( Page_ClientValidate( tabName ) ) {
            //do stuff
        }
    }
    

    加法