0

ASP.NETを使用してJavaScript関数に値を渡していますが、何らかの理由で判別できなかったため、別のコントロールから値を渡そうとしても機能しません。代わりに、構文エラーがあるように動作し、メインフォームに送信します。

誰かが理由を知っていますか?

例:

<asp:TextBox ID="txtToSay" runat="server" Text="Something"></asp:TextBox>

<asp:Button runat="server" ID="btnSaySomething1" Text="Say Something"
OnClientClick="saySomething(<%=txtToSay.Text%>);"  /> <!-- doesn't work -->

<asp:Button runat="server" ID="btnSaySomething1" Text="Say Something"
OnClientClick="saySomething('<%=txtToSay.Text%>');"  /> <!-- doesn't work -->

<asp:Button runat="server" ID="btnSaySomething2" Text="Say Something"
OnClientClick="saySomething('Something');"  /> <!-- works -->

<script type="text/javascript">
    function saySomething(txt){
        alert(txt);
    };
</script>

追加情報:

.NET 4.0で実行されているWebアプリケーション言語:C#

アップデート:

しばらくこれを使用した後<%%>、ASPコントロールでタグを使用できないと判断しました。<%=someControl.Text%>さらに、制御値の動的評価を探している場合は、リクエストがサーバーに送信された後にのみ評価されるため、または同様の構成を使用してAVOIDAVOIDAVOIDを使用してください。実行時に別のコントロールからの静的な値が必要な場合は、ページの読み込みイベントでその値を設定するか、コードビハインドで別の方法で処理します。

4

2 に答える 2

2

Javacript will search for variable name = txtToSay.TextsaySomething関数呼び出しで、文字列値にするために引用符で囲みます

変化する

OnClientClick="saySomething(<%=txtToSay.Text%>);" 

OnClientClick="saySomething('<%=txtToSay.Text%>');" 

この方法で渡さなくてもtxtToSay.Textを取得できます

<script type="text/javascript">
    function saySomething(txt){
        alert(document.getElementById('<%=txtToSay.Text%>').value);
    };
</script>
于 2012-11-21T16:43:14.743 に答える
1

'通話中にテキストを配置する必要がありsaySomething()ます。

このような:

    <asp:Button runat="server" ID="btnSaySomething1" Text="Say Something" OnClientClick="saySomething('<%=txtToSay.Text%>');"  />

アップデート

<%= %>asp.netコントロール内では機能しません。コードビハインドから設定できますか?

IE

btnSaySomething1.OnClientClick = "Text to say"
于 2012-11-21T16:42:56.073 に答える