当有两个Button runat服务器时,在asp.net webform中使用html5验证器

时间:2015-04-12 08:27:35

标签: asp.net html5 validation

<body>
<form id="form1" runat="server">
    <div>
        <asp:TextBox ID="txtb3" runat="server" required></asp:TextBox>
        <asp:TextBox ID="txtb2" runat="server" required></asp:TextBox>
        <asp:TextBox ID="txtb1" runat="server" required></asp:TextBox>

        <asp:Button ID="btnBack" runat="server" Text="btn 2" OnClick="btnBack_Click" />
        <asp:Button ID="btnSubmit" runat="server" Text="btn 1" OnClick="btnSubmit_Click" />

    </div>
</form>

这是我的代码页。我有两个按钮,需要在提交按钮验证,但不需要在后退按钮验证。怎么做!!!

4 个答案:

答案 0 :(得分:1)

您可以编写javascript来防止后退按钮。以下是您需要的代码段。

<script  type="text/javascript">
    function setNoValidate() {
        for (var f = document.forms, i = f.length; i--;) f[i].setAttribute("novalidate", i);
        document.forms[0].submit(); // replace 0 with with actual form name, like document.formSub
    }
</script>

<asp:Button ID="btnBack" runat="server" Text="btn 2" OnClientClick="setNoValidate();" />

<强>更新

您可以使用HTML5属性formnovalidate来转义HTML5验证,即直接使用<asp:Button ID="btnBack" runat="server" Text="btn 2" formnovalidate />代替上述脚本。 Explained here

注意:CausesValidation用于处理asp.net验证器的验证,而不是HTML5验证。

答案 1 :(得分:1)

使用formnovalidate标签以避免验证---

formnovalidate =&#34; formnovalidate&#34;

 <asp:Button ID="btnBack" runat="server" Text="btn 2" OnClick="btnBack_Click" formnovalidate="formnovalidate" />
<body>
    <form id="form1" runat="server">
        <div>
            <asp:TextBox ID="txtb3" runat="server" required></asp:TextBox>
            <asp:TextBox ID="txtb2" runat="server" required></asp:TextBox>
            <asp:TextBox ID="txtb1" runat="server" required></asp:TextBox>

            <asp:Button ID="btnBack" runat="server" Text="btn 2" OnClick="btnBack_Click" formnovalidate="formnovalidate" />
            <asp:Button ID="btnSubmit" runat="server" Text="btn 1" OnClick="btnSubmit_Click"  />

        </div>
    </form>

答案 2 :(得分:0)

这是正确的方法:=)

<asp:Button ID="btnBack" runat="server" Text="btn 2"
      OnClick="btnBack_Click"  CausesValidation="False"/>

答案 3 :(得分:0)

只需在您不希望触发html5验证的按钮上添加 formnovalidate =&#34; formnovalidate&#34;