2012-11-24 23 views
14

asp.netのボタンを無効または有効にするにはどうすればよいですか?ダブルクリックを防止するために、クリック後にボタンを無効にしたい。私はそれをクリックした後、ログインボタンを無効にしようとしています。ボタンを無効にする方法asp.net

+0

私はボタンを無効にすることはできませんよ。ユーザーがユーザー名とパスワードを入力してログインボタンをクリックすると、そのボタンは無効ではなく、ユーザーがログインに失敗したときにも有効にします。 – Amol

+0

[this](http://jsfiddle.net/BrOSs/Mzhg2/)jsfiddle – BrOSs

+0

これは、サーバーに値を送信し、このボタンを無効にします。右? –

答えて

13

ユーザーが再度クリックできないように、クライアント上で無効にする必要があります。

<asp:button id="btn" runat="server" OnClientClick="this.disabled=true;"...... 

サーバーサイドのasp.netコードを無効にするには

btn.Enabled = false; 
+0

が必要です。 – Amol

+1

@adil彼はユーザー名とパスワードを書いてクリックしてもボタンを無効にしても、値をサーバーにポストしません。 –

+1

OP – Adil

3

あなたはそれを行うために、クライアント側のonclickイベントを使用することができます。

yourButton.Attributes.Add("onclick", "this.disabled=true;"); 

または

あなたはJavaScriptでこれを行うことができます。この

button1.enabled = false 
+0

ユーザーがユーザー名とパスワードを入力しないでクリックすると、無効になります。 – Amol

+0

@Amolあなたはあなたの質問にそれを明記するべきです。 – TheOptimusPrimus

2

は、ユーザー名とパスワードをチェックするJavaスクリプト関数を書くようなあなたのformタグで、

onsubmit="javascript:this.getElementById("submitButton").disabled='true';" 

または

ファイルの背後にあるコードでは、行うことができます。
空白でない場合は、ボタンを無効にします。
ボタンを無効にして、ポストバックがある場合。そして、ポストバックの後、まだ有効になります。
だからアイデアは

  1. Javaスクリプト関数を作成します。
  2. 検証、ユーザー名とパスワード
  3. 彼らが有効な場合
  4. ボタン(ジャバスクリプト)を無効にします。
  5. .NETが名前をマングリングするのを防ぐために、ClientIdMode = "Static"を<asp:button>に追加します。

--edit

<asp:button id="btn" runat="server" ClientIdMode="Static" OnClientClick="return btn_disable" ... 

あなたのjavaスクリプトコード

function btn_disable 
{ 
    //check for user name and password 
    // if filled 
    document.getElementById("btn").disabled=true; 

} 
+0

素敵な試みですが、bs webformsのID命名はどうですか? – Developerdeveloperdeveloper

+1

@Developer開発者がClientIdModeを使用する= "静的" –

関連する問題