0

これは私を殺している私が見落としている単純なものでなければなりません。ASP ボタンをクリックして単純な JavaScript 関数を起動しようとしています。私のボタンは次のようになります。

<asp:Button ID="btnFinalize" runat="server" Enabled="False" OnClientClick="finalizeClick(); return false;" Text="Finalize Selection" />

他のクライアントロジックに基づいて有効にします。有効にしたらクリックしても何も起こりません。

JS 関数 finalizeClick() 内にブレークポイントがあり、決してそこに到達しません。

そこで、通常の HTML ボタンを試してみたところ、関数が正常に呼び出され、期待どおりに実行されました。次のようになります。

<input  type="button" id="btnFinalizeNotASP" value="button" onclick="finalizeClick();"/>

頭がおかしくなりました、助けてください。

編集 詳細情報。Enabled="False" である必要があります。それを ASP タグから取り出すと、機能します。ボタンを無効にして開始し、他のイベントクライアント側で有効にしたいので、設定した別のjavascriptイベントでそれを行います:

finalizeButton.disabled = false;

理由はわかりませんが、 finalizeButton.enabled = ture; ボタンをオンにしたことはありません。

まだ困惑

4

2 に答える 2

1

うまくいくものを見つけましたが、あまり好きではありません。その理由と、より良い解決策があるかどうかを他の人から知りたいです。

私が残した場合:

Enabled="False"

私のASPタグから出して置く

var btnfinalize = document.getElementById("<%=btnFinalize.ClientID %>");
btnfinalize.disabled = true;

私のページのJavaScriptでは、設計中にASPボタンが有効になり、ページが読み込まれると無効になり、後で有効にしたときに必要なjavascrip関数が適切に起動されます(本当に無効になっています= false)そしてクリックされました

于 2012-12-18T21:23:41.637 に答える
0

いいえ、ASP.NET サーバー コントロールではなく、サーバー側でコントロールを実行する必要がない場合は、HTML コントロールを使用します。

すなわち

< input type="button" / >

それ以外の

< asp:Button ID="btn" runat="server" / >
于 2012-12-18T20:45:09.020 に答える