2012-04-04 7 views
0

私のページには3つの手順でASPウィザードがあります。aspウィザードのボタンonclickを無効にする

<asp:Wizard ID="wizardBestellen" runat="server" ActiveStepIndex="0" DisplaySideBar="False" onfinishbuttonclick="wizard_NextButtonClick" onnextbuttonclick="wizard_NextButtonClick" onpreviousbuttonclick="wizard_PreviousButtonClick"> 
      <StartNavigationTemplate></StartNavigationTemplate> 
      <StepNavigationTemplate></StepNavigationTemplate> 
      <FinishNavigationTemplate></FinishNavigationTemplate> 
      <WizardSteps> 
      <asp:WizardStep runat="server" ID="step1" StepType="Start"> 
       <uc1:control ID="uc1" runat="server" /> 
      </asp:WizardStep> 
      <asp:WizardStep runat="server"ID="step2" StepType="Step"> 
       <uc2:control ID="uc2" runat="server" /> 
      </asp:WizardStep> 
      <asp:WizardStep ID="step3" runat="server" StepType="Finish"> 
       <uc3:control ID="uc3" runat="server" /> 
      </asp:WizardStep> 
      </WizardSteps> 
     </asp:Wizard> 

は今、すべてのコントロールには、次のとクリックした後、あなたのデータを検証し、次のステップにあなたを送る前のボタンがあります。今、私はそれをクリックした後にボタンを無効にして、ローダイメージを持つdiv要素を見せたかった ...これまでのところ、すべてが完璧に動作

​​

:ボタンはすべてのように見えます。だから、divLoaderという名前のdivと、ボタンが入っているdivを隠し、ローダーとdivを表示するjavascript関数を作成しました。

function ToggleDiv(divButton, divLabel) 
{ 

     if (divButton.style.display == 'block') 
     { 
      divButton.style.display = 'none'; 
      divLabel.style.display = 'block'; 
     } 
     else 
     { 
      divButton.style.display = 'block'; 
      divLabel.style.display = 'none'; 
     } 
} 

しかし、私はこれを動作させることはできません。 ToggleDiv関数は別の状況ではうまく機能するので、問題ではありません。 私はリンクボタンのOnClick属性から関数を呼び出そうとしましたが、これは私にエラーをもたらしました。私はOnClientClickを試しましたが、これはうまくいかず、また、コードの中でonclick属性を設定しようとしましたが、これもまた終わりでした。

誰かが私に間違っていることを説明することができますか、またはユーザーがボタンを2回クリックするのを防ぐ別の方法がありますか?

答えて

1

あなたは拘束力が働いていないようですね。

私が最初にやることは、ビューソースを実行することによって放出されたコントロールIDをチェックすることです。 .NET Frameworkの実装によっては、これらのコントロールIDに余計なものが追加されるため、フォームに表示されるものと同じになることは保証できません。

次に、JavaScriptバインディングを試してみましょう。 JavaScriptファイルがある場合は、そこに配置します。作成しない場合は、フォームの下部にJavaScriptブロックを追加します(環境設定のために新しいファイルを作成します)。

これは、jQueryのようなJAvaScriptのlbraryではるかに簡単ですが、現時点ではあなたが持っていないと仮定できます。

今すぐあなたのボタンのバインディングクリックを追加

​​

ウィンドウのonloadイベントハンドラを追加します。

window.onload = function(){ 
    document.getElementById("***YOUR BUTTON ID***").onclick = function(){ 
     ToggleDiv(this, document.getElementById("***YOUR LABEL ID***")); 
    } 
} 

私は、これはjQueryを使って少しeaserだろう、まあ、これは同等であることを特徴とします実装:上記のサンプルは、あなたのToggleDivの必要性を取り除く

$(document).ready(function(){ 
    $("#***YOUR BUTTON ID***").click(function(){ 
     $(this).toggle(); 
     $("#***YOUR LABEL ID***")).toggle(); 
    }); 
}); 

完全に機能する。

+0

私はjqueryバージョンthnxを使用しました! – Pedryk

関連する問題