当客户端验证失败时,无效的asp.net将用户导航到页面顶部?

时间:2015-08-07 22:55:32

标签: jquery asp.net

使用ASP.NET webforms,bootstrap,jquery。

我的表单提交:

 <asp:LinkButton ID="lnkSubmit" CssClass="btn btn-warning CausesValidation="true" runat="server">Submit</asp:LinkButton>

我有以下JS用于客户端验证:

 $("#ShortForm").click(function (evt) {
        var isValid = $("#ShortForm").formValidation('validate');
        if (!isValid)
        evt.preventDefault();
    });

我有客户端和服务器端验证检查。表格位于折叠下方。如果客户端检查失败,浏览器会将用户拉到页面顶部。如果客户端通过,但服务器端失败,则浏览器不会更改页面上的位置。这是为什么?

2 个答案:

答案 0 :(得分:1)

浏览器在回发后维护位置可能是因为您的代码将MaintainScrollPositionOnPostBack 设置为true。

由于formValidation函数中的代码,浏览器在客户端验证失败后滚动到页面顶部。我不熟悉这个函数(你使用哪个JQuery插件?)但我的猜测是你使用的验证套件在页面顶部有一个验证摘要面板和.formValidation函数正在滚动页面,以便用户可以看到它。

答案 1 :(得分:1)

验证插件是formvalidation.io

这可以解决问题

 if (!$("#ShortForm").data('formValidation').isValid())
            evt.preventDefault();
     });

有人可以解释为什么这会解决这个问题吗?我想了解其工作原理的内部运作方式,以及问题是如何发生的?