ASP.NET WebForms - 同时执行JavaScript验证和验证控制

时间:2016-08-04 12:47:13

标签: javascript asp.net webforms

在我正在开发的应用程序中,我使用ASP.NET Web Forms提供的Validation控件以及我正在使用JavaScript的表单的某些部分。

验证的两个方面都应该正常工作,但是,当我单击“提交”按钮时,首先是ASP.NET验证,然后是我在JavaScript中进行的自定义验证。因此,当表单不完整并提交时,仅显示ASP.NET验证错误,并且在更正这些错误并提交表单时,将显示我的验证错误。

我想要的是当用户点击“提交”按钮时,ASP.NET验证和我的JavaScript验证同时发生,以便用户可以一次看到所有错误。

<form id="StudentLSFApplication" runat="server" onsubmit="return validateForm()">
    <!--other html code-->
    <asp:Button ID="SaveLSFApplication" runat="server" Text="Save Application" OnClick="saveApplication"
            ValidationGroup="AllValidation" />
</form>

<script>
    function validateForm() {
        //my validation
    }
</script>

从我的示例代码中可以看出,我在validateForm()事件中调用了JavaScript函数onsubmit,并且Button控件是AllValidation验证的一部分组。目前,在表单提交时,AllValidation首先出现,如果可以,则validateForm()发生。

1 个答案:

答案 0 :(得分:3)

我认为您正在寻找的是CustomValidator。您可以像这样使用它:

    <script type="text/javascript">
        function validateFormElement(sender, args) {
            if (args.Value == "waarde") {
                args.IsValid = true;
            } else {
                args.IsValid = false;
            }
        }
    </script>

    <asp:TextBox ID="TextBox1" runat="server" ValidationGroup="myValidation"></asp:TextBox>

    <asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="Input error" ValidationGroup="myValidation" ClientValidationFunction="validateFormElement" ControlToValidate="TextBox1"></asp:CustomValidator>

    <asp:Button ID="Button1" runat="server" Text="Button" ValidationGroup="myValidation" />

您仍然可以使用所有其他验证器。无需将您想要的每个验证都塞进一个javascript函数中。