0

私は、うまく機能する JS 検証関数を知っています (OnClientClick までさかのぼって検証済み)。OnClientClick によって呼び出されると、すべての必須フィールドが入力されているかどうかを確認し、送信ボタンを無効にして、正しい true/false 検証を OnClientClick に返します。

問題は、ボタンを無効にすることです。ページが送信されて再読み込みされますが、OnClick イベントは発生しません。注目する

document.getElementById("<%=btnSubmit.ClientID %>").disabled = true;

コードにより、OnClick イベントを発生させることができます。

入れてみました

this.disabled=true;

OnClientClick に直接入力するか、UseSubmitBehavior=false を使用します。

ボタンが無効になっているときに OnClick イベントが発生しないのはなぜですか?

4

4 に答える 4

0

2つのこと:

1 「無効」属性が設定されていないことを確認します。属性を削除してみてください

document.getElementById("<%=btnSubmit.ClientID %>").removeAttribute('disabled');

2 OnClick ポストバックは、次のように呼び出した場合に実行できるはずです。

var button = document.getElementById("<%=btnSubmit.ClientID %>");
window.location.href = button.getAttribute("href");

基本的に、OnClick はサーバー側のメソッドであるため、ブラウザにリクエストを送信させます。

于 2016-06-29T13:09:57.543 に答える
0

onClick イベントを含む div 要素でボタンをラップするだけです。ボタン自体が無効になっている場合でも、それは起動するはずです。唯一の欠点は、コード ビハインドから直接ボタンにイベントを割り当てることができないことです。あなたの質問から、ボタンが有効になっているかどうかにかかわらず、onClick イベントは常に発生するように見えます。

于 2016-06-29T13:12:11.473 に答える