1

aspx ページのテキスト ボックスに何かが入力されるたびに、ラベルを非表示にしたいと考えています。

私はこのようなことを試みています:

protected void txt_LastName_KeyPress(object sender, EventArgs e)
{
    Label_msg.Visible = false;
}
protected void txt_LastName_KeyDown(object sender, EventArgs e)
{
    Label_msg.Visible = false;
}

しかし、それは起こっていません。フォーカスイベントでこのようなことを書く必要がありますか?

4

7 に答える 7

4

JavaScriptが必要です

jQueryを使った実装はこちら

<script>
    $('#txt_LastName').focus(function() {
        $('#Label_msg').hide();
    });
    $('#txt_LastName').blur(function() {
        $('#Label_msg').show();
    });
</script>

プレーンなバニラ JavaScript ソリューションは次のようになります。

<script>
    document.getElementById("txt_LastName").onfocus = function() {
        document.getElementById("Label_msg").style.display = 'none';
    };
    document.getElementById("txt_LastName").onblur = function() {
        document.getElementById("Label_msg").style.display = 'inherit';
    };
</script>
于 2013-10-25T19:54:34.160 に答える
2

これはあなたにとって役立つかもしれません。次のようにしてください...

まず、Textbox の AutoPostBack プロパティを true に設定します。

AutoPostBack="True"

次に、OnTextChanged イベントを使用します

protected void TextBox1_TextChanged(object sender, EventArgs e)
    {
        Label1.Visible = false;
    }
于 2013-10-25T20:07:19.423 に答える
1

Winforms とは異なり、ASP.Net フォームには KeyPress イベントがないため、次の例のように、ユーザーがテキスト ボックスに入力しているときにラベルを非表示にするには、JQuery ショート ハンド コード (JavaScript 用) を使用する必要があります。

<script>
    $(document).ready(function () {
        $("#txtUserName").keypress(function () {
            $("#lblUser").hide();
        });
    });
</script>
于 2015-12-18T10:36:15.327 に答える
1

レイヤー イベント ベースのサーバー側の可視性を変更することはできません。これを JavaScript プロシージャに入れる必要があります。

可能性があります: 簡単な方法は、jQuery を使用することです (jQuery を含める必要があります!):

<script type="text/javascript">
$(function() {
    $('#txt_LastName').focus(function() {
        $('#Label_msg').hide();
    });
    $('#txt_LastName').blur(function() {
        $('#Label_msg').show();
    });
}
</script>

2 番目の方法: 難しい方法で行う 何らかの理由で jQuery を使用したくない場合は、DOM を直接操作する必要があります。あなたはそれについて読むことができます: W3Schools DOM Methods

于 2013-10-25T20:02:37.610 に答える