ASP.NET Imagebutton在ValidationGroup验证后执行jQuery函数

本文关键字:执行 jQuery 函数 验证 ValidationGroup NET Imagebutton ASP | 更新日期: 2023-09-27 18:29:26

我在Web表单中同时使用ASP.NET和jQuery时遇到问题。

目前,我有一个多div注册,它使用ASP.NET客户端验证,但我也希望它有jQuery动画来从一个步骤移动到另一个步骤。

<asp:ImageButton ID="NextButton" runat="server" ImageUrl="images/registration/arrowright.png" Height="50px" onmouseover="this.src='images/registration/arrowrightgreen.png'"  onmouseout="this.src='images/registration/arrowright.png'" ValidationGroup="UserInformation" OnClientClick="onNextClick()"/>

我还有一个jQuery函数,它将转到注册的下一步。

<script type="text/javascript">
    $(document).ready(function () {
        $("[id$=pick_user_type]").hide();
    });
    function onNextClick() {
        $("[id$=registration_div]").hide('slide', { direction: 'left' }, 1000);
        $("[id$=pick_user_type]").show('slide', { direction: 'right' }, 1000);
    }
</script>

问题是,即使表单无效,jQuery也会继续执行并制作动画。我是否可以通过其他方式与jQuery通信?根据我所读到的内容,如果您有一个无效字段,ASP.NET验证器将导致Page.Validate()方法返回false。我是否必须直接转到jQuery验证?

ASP.NET Imagebutton在ValidationGroup验证后执行jQuery函数

看起来我刚刚找到了答案。这将适用于验证组"用户信息"

if (Page_ClientValidate("UserInformation")) {
    $("[id$=registration_div]").hide('slide', { direction: 'left' }, 1000);
    $("[id$=pick_user_type]").show('slide', { direction: 'right' }, 1000);
}

您可以强制验证控件并更新其显示,如下所示:

ValidatorValidate($('<%= myValidator.ClientID %>'));

有关客户端API和客户端对象的详细信息,请阅读ASP.NET验证的深度。

使用valid()函数。

if($("#form_id").valid()) 
{
  $("[id$=registration_div]").hide('slide', { direction: 'left' }, 1000);
  $("[id$=pick_user_type]").show('slide', { direction: 'right' }, 1000);
}