1

ユーザーがテキストボックスに入力したときに非表示にしようとしている ASP.Net 4.0 Web サイトにラベルがあります。

Textbox の Keypressevent で起動する Javascript 関数があります。

したがって、私のJavascript関数は次のとおりです。

function hideLabel(sender, e) {
    document.getElementById('<%=lblResult.ClientID%>').style.display = 'none';
}

そして、私のテキストボックスとラベルは次のとおりです。

<tr><td>
    <asp:Label ID="lblResult" runat="server" Visible="True"></asp:Label>
</td></td>
<tr><td>
  <asp:TextBox ID="txtEmailAddress" runat="server" Width="200px"
       CssClass="customtxt" onkeypress="hideLabel(this, event)"></asp:TextBox>
</td></td>

関数は起動しますが、次のエラーが表示されます: Microsoft JScript ランタイム エラー: オブジェクトが必要です

関数内で以下のコード行も試しましたが、これも機能しません。

document.getElementById('lblResult').style.visibility = 'hidden';

これが IE 8 で失敗する理由は誰にでもわかります - Chrome では正しく動作しています。

4

3 に答える 3

1

探しているラベルが見つからないので、ほぼ間違いなく失敗しています。生成されたソースを見て、ラベルがページに存在し、JavaScriptで生成された出力にあるIDを取得していることを確認してください。

于 2012-02-06T14:54:45.327 に答える
1

パラメータのないメソッドだけが機能します。

<script language="javascript" type="text/javascript">
    function hideIt() {
        document.getElementById('<%=myLabel.ClientID%>').style.display = 'none'; 
    }
</script>

更新しました :

HTML マイ ラベル

SCRIPT 関数 hideIt() { document.getElementById('<%=myLabel.ClientID%>').style.display = 'none'; }

私はそれが動作することを確認できます....どのブラウザを使用しているので、テストできますか?

于 2012-02-06T14:35:16.650 に答える
1

あなたの場合、関数にパラメータを渡す必要はないと思います:

    function hideLabel() {
    document.getElementById("<%=lblResult.ClientID%>").style.display = "none";
}

<asp:TextBox ID="txtEmailAddress" runat="server" Width="200px" CssClass="customtxt" onkeypress="hideLabel()"></asp:TextBox>
于 2012-02-06T14:29:49.383 に答える