2

私の aspx ページには 2 つの があり、それぞれが独自のボタンを持つfieldsetsでラップされています。短縮版はこちら…<asp:Panel DefaultButton="..."><input type="submit">

<div id="content">...</div>
<asp:Panel runat="server" id="formPanel1" DefaultButton="form1SubmitButton"> 
    <fieldset>
        <asp:TextBox runat="server" id="textbox1"/>
        <asp:TextBox runat="server" id="textbox2"/>
        <asp:Button runat="server" id="form1SubmitButton" OnClick="form1SubmitButton_OnClick"/>
    </fieldset>
</asp:Panel>
<asp:Panel runat="server" id="formPanel2" DefaultButton="form2SubmitButton"> 
    <fieldset>
        <asp:TextBox runat="server" id="textbox3"/>
        <asp:TextBox runat="server" id="textbox4"/>
        <asp:Button runat="server" id="form2SubmitButton" OnClick="form2SubmitButton_OnClick"/>
    </fieldset>
</asp:Panel>

最後の送信ボタンのみform2SubmitButtonがポストバックされ、他のボタンはクリックされても何もしません。上記のコードを簡略化しましたが、Panel を含む各フォームは、aspx に登録された個別のユーザー コントロールに保持されることに注意してください。

更新:さらに調査した結果、マスター ページの別のフィールドセットのバリデーターが原因で、送信が機能していないことがわかりました。そのフィールドセットはサイトにサインインするためのものなので、必要です。考え?

4

2 に答える 2

2

PCasagrande が述べたように、検証グループがデフォルトのボタンとすべてのバリデーターと一致していることを確認してください。特にあなたのロギング部分のために。

例:

<asp:Panel ID="pnlUpdateInfo" runat="server" DefaultButton="btnUpdateInfo">

  <ASP:TEXTBOX id="txtZip" runat="server"></ASP:TEXTBOX>   
  <asp:RequiredFieldValidator id="reqvalZipSignUp" runat="server"
    ControlToValidate="txtZip" ValidationGroup="btnUpdateInfo" />                       

  <asp:Button ID="btnUpdateInfo" runat="server" ValidationGroup="btnUpdateInfo"  />

</asp:Panel>
于 2012-07-26T14:08:41.853 に答える
1

HTML5 制約の検証に関係していることが判明しました。クロムでは、コンソールからエラーが発生していたため、これを理解しましたAn invalid form control with name='...' is not focusable。これが私をこの投稿に導きました。送信ボタンに html5 属性を追加したformnovalidate="formnovalidate"ところ、すべて正常に動作しました (* chrome v20.0.1132.57、firefox v14.0.1、IE9 v9.0.8112 でテスト済み)。

要約すると、ここに答えがあります...

<asp:Button runat="server" id="submit1" OnClick="submit1_OnClick" text="Submit" formnovalidate="formnovalidate"/>
于 2012-07-26T17:42:38.550 に答える