0

ウィザード テンプレート コントロールを使用する ASP.NET Web フォーム アプリケーションがあります。

私のウィザードには4つのページ(フォーム)があり、最後のページの送信ボタンを無効にするためにjQueryを使用したいと思います(他のページのボタンは次と前だけです)防止するためにこれを行いたいユーザーがボタンを何度もクリックすると、フォームが複数回送信されます。

「問題」は、送信ボタンが自動生成されるため、送信ボタンにIDを割り当てることができないことです(この動作を変更しないように明示的に依頼しました)。

このjQueryを試しましたが、うまくいきません:

$('#form1').submit(function () {
        $(this).children('input[type=submit]').attr('disabled', 'disabled');
    });

form1ウィザードをラップするフォームの ID はどこにありますか。誰か助けてくれる?

4

2 に答える 2

0

解決策を見つけました。これはきちんとしたものではありませんが、ASP.NET Web フォームによって提供される乱雑なコントロールを扱っている場合、ほとんどの場合、回避策が唯一の可能な解決策です。

最初のステップは、終了ボタンの自動生成を無効にしてから、ウィザードの下部に添付することです。

<FinishNavigationTemplate>
        <table cellpadding="3" cellspacing="3">
         <tr>
            <td>
               <asp:Button ID="btnPrevious" runat="server" Text="Previous"
                           CausesValidation="false" 
                           CommandName="MovePrevious"
                           CssClass="buttonStyle"/>
            </td>
            <td>
               <asp:Button ID="btnFinish" runat="server" Text="Finish"
                           onClientClick="this.disabled = true; this.value =  'Submitting...';  
                           this.className = 'buttonStyleDisabled';"   
                           UseSubmitBehavior="false"  
                           CausesValidation="true" 
                           CommandName="MoveComplete"
                           CssClass="buttonStyle"/>
            </td>  
          </tr>
        </table>
</FinishNavigationTemplate>

アップデート:

<FinishCompleteButtonStyle>終了ボタンの自動生成を削除するには、ウィザードからタグを削除するだけです

于 2012-02-15T12:34:40.100 に答える