ASP.NET Imagebutton在ValidationGroup Validation之后执行jQuery函数

时间:2013-08-28 01:38:44

标签: c# javascript jquery asp.net validation

我在webform中使用ASP.NET和jQuery时遇到了问题。

目前我有一个使用ASP.NET客户端验证的多div注册,但我也希望它让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验证吗?

3 个答案:

答案 0 :(得分:1)

好吧,看起来我刚刚找到答案。这将适用于ValidationGroup“UserInformation”

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

答案 1 :(得分:0)

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

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

阅读ASP.NET Validation in Depth以获取有关客户端API和客户端对象的更多信息。

答案 2 :(得分:0)

使用valid()函数。

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