0

ボタン クリック イベントでコード ビハインドから JavaScript 関数を呼び出そうとしています。以下は私のJavaScriptコードです。

  ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "strScript", "javascript:clearBox();", true);

そして関数は

<script type="text/javascript">

function clearBox() {


    alert("Test");

}
</script>

「オブジェクトが必要です」というエラーが表示されます

4

2 に答える 2

4

ボタンのOnClientClickプロパティを使用する必要があります。

<asp:Button runat="server" OnClientClick="clearBox()" />

RegisterClientScriptBlockページにコードを配置するだけです。

<script type="text/javascript">
      javascript:clearBox();
</script>

また、これは有効なコードではないため機能しません(javascript:これは、アンカーがhrefからjsを実行するために使用されるためです:) <a href="javascript:some_code_here()"></a>

必要に応じRegisterClientScriptBlockて、addEventListenerを使用してonclickハンドラーをボタンに割り当てることもできます。これのコードスニペットは次のとおりです(クロスブラウザーと純粋なJS)これは次のように使用できます。

  ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "strScript", "addListener('"+button.ClientID+"', 'click', clearBox);", true);

ただし、すべてのHTMLがロードされ、ボタンがまだない可能性がある前に、最初のHTMLが呼び出される可能性がある場所に置き換えることをお勧めRegisterClientScriptBlockします。[RegisterStartupScript](http://msdn.microsoft.com/en-us/library/z9h4dk8y.aspx)

Upd ええと、hvdに感謝します。彼は、JSにはラベルがあり、実際には有効なコードであると私に思い出させましたがjavascript:clearBox()、OPが望んでいることは実行されません。

于 2012-10-02T21:15:47.693 に答える
0

このコードを使用します:

Page.ClientScript.RegisterStartupScript(this.GetType(),  "Error", "clearBox();", true);
于 2012-10-02T21:21:36.463 に答える