【问题标题】:html5 input validation preventing asp grid view button presshtml5输入验证防止asp网格视图按钮按下
【发布时间】:2017-11-07 10:03:15
【问题描述】:

我的页面由 html5 输入和 asp 网格视图组成。当我尝试按下任意行上的网格视图按钮时,会显示 HTML5 输入验证消息。如果不填写表单的必填字段,我无法使用网格 asp 按钮,但我不需要填写表单即可使用网格视图。

我希望 HTML5 输入验证仅适用于提交按钮,而不适用于页面中的所有按钮。我该怎么做?

<div class="content">
        <div class="box box-default">            
            <div class="form-horizontal">
                    <div class="form-group">
                        <label class="col-md-2 control-label">Type</label>
                        <div class="col-md-4">
                            <input type="text" class="form-control input_text" runat="server" id="inputType" placeholder="BILLING TYPE" required="required" autocomplete="off" />
                        </div>
                        <div class="col-md-4">
                            <asp:RequiredFieldValidator ID="rfv2" ControlToValidate="inputType" ErrorMessage="*" ValidationGroup="btnSubmitClick" runat="server"></asp:RequiredFieldValidator>
                        </div>
                    </div>
                    <div class="form-group">
                        <label class="col-md-2 control-label">Amount</label>
                        <div class="col-md-4">
                            <input type="number" class="form-control input_text" runat="server" id="inputAmount" placeholder="BILLING AMOUNT" required="required" autocomplete="off" />
                        </div>
                        <div class="col-md-4">
                            <asp:RequiredFieldValidator ID="rfv3" ControlToValidate="inputAmount" ErrorMessage="*" ValidationGroup="btnSubmitClick" runat="server"></asp:RequiredFieldValidator>
                        </div>
                    </div>
                    <div class="form-group">
                        <div class="col-md-2"></div>
                        <div class="col-md-2">
                            <asp:Button ID="btnSubmit" runat="server" Text="SUBMIT" OnClick="btnSubmit_Click" Style="width: 100%" class="btn btn-block btn-primary"
                                CausesValidation="true"
                                ValidationGroup="btnSubmitClick"
                                OnClientClick="if (!Page_ClientValidate()){ return false; } this.disabled = true; this.value = 'Saving...';"
                                UseSubmitBehavior="false" />
                        </div>                        
                    </div>
                </div>
            </div>

            <div class="col-md-12">
                <asp:ScriptManager ID="adminScriptManager" runat="server" EnablePageMethods="true"></asp:ScriptManager>
                <asp:UpdatePanel ID="updatepanel1" runat="server">
                    <ContentTemplate>
                        <div id="div_grid" runat="server">
                            <asp:GridView ID="GridView1"
                                runat="server"
                                AutoGenerateColumns="false"
                                Width="100%"
                                HeaderStyle-HorizontalAlign="Left"
                                CssClass="gridview"
                                AlternatingRowStyle-CssClass="even" DataKeyNames="ID" OnRowCommand="GridView1_RowCommand">
                                <Columns>
                                    <asp:TemplateField HeaderText="S No." ItemStyle-Width="5%">
                                        <ItemTemplate>
                                            <%#Container.DataItemIndex+1 %>
                                        </ItemTemplate>
                                    </asp:TemplateField>                                    
                                    <asp:BoundField DataField="BILLING_AMOUNT"
                                        HeaderText="AMOUNT">
                                        <ItemStyle VerticalAlign="Top" />
                                    </asp:BoundField>
                                    <asp:BoundField DataField="CREATED_BY"
                                        HeaderText="CREATED BY">
                                        <ItemStyle VerticalAlign="Top" />
                                    </asp:BoundField>
                                    <asp:TemplateField HeaderText="STATUS">
                                        <ItemTemplate>
                                            <asp:Button ID="btnBilled" CommandName="ChangeStatus" CommandArgument='<%#Eval("ID")+","+ Eval("BILL_STATUS")%>' Text='<%# Convert.ToBoolean(Eval("BILL_STATUS")) ? "DISABLE" : "ENABLE" %>' runat="server" />
                                        </ItemTemplate>
                                    </asp:TemplateField>
                                </Columns>
                            </asp:GridView>
                        </div>
                    </ContentTemplate>
                    <Triggers>
                        <asp:AsyncPostBackTrigger ControlID="GridView1" EventName="RowCommand" />
                    </Triggers>
                </asp:UpdatePanel>
            </div>
        </div>
    </div>

当我在网格视图中按下 asp Button ID="btnBilled" 时,会显示输入字段 inputType 的 html5 验证。我怎样才能绕过这个?

【问题讨论】:

    标签: jquery asp.net html


    【解决方案1】:

    CausesValidation 是验证 asp.net 验证器而不是 HTML5 验证。

    我使用了formnovalidate="formnovalidate"的属性

    <asp:Button ID="btnBilled" CommandName="ChangeStatus" formnovalidate="formnovalidate" CommandArgument='<%#Eval("ID")+","+ Eval("BILL_STATUS")%>' Text='<%# Convert.ToBoolean(Eval("BILL_STATUS")) ? "DISABLE" : "ENABLE" %>' runat="server" 
    CausesValidation="false" />
    

    成功了。

    【讨论】:

      【解决方案2】:

      在按钮上设置 CausesValidation="false":

      <asp:Button ID="btnBilled" CommandName="ChangeStatus" CommandArgument='<%#Eval("ID")+","+ Eval("BILL_STATUS")%>' Text='<%# Convert.ToBoolean(Eval("BILL_STATUS")) ? "DISABLE" : "ENABLE" %>' runat="server" 
      CausesValidation="false" />
      

      【讨论】:

      • 我按照您的建议尝试了,但它不起作用。仍然从文本框中收到 HTML5 验证消息。
      猜你喜欢
      • 2019-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-11
      • 2016-02-07
      相关资源
      最近更新 更多