1

次のように、ASP.net ページのテキスト フィールドにデフォルトの灰色のテキストを追加する必要があります。

画像01

また、ユーザーがフィールドをクリックまたは入力すると、デフォルトのテキストが消えます。

テキストボックスイベントでこれを実行する方法は?

テキストの色を変更するための onFocus イベントを実装することができました。私の.aspxページでは<script>、JS コードのタグを作成します。

<script type="text/javascript">
    function test(obj) {
        obj.style.color = "grey";
    }
</script>

コードビハインド:

txtBox.Attributes.Add("OnFocus", "test(this)")
'txtBox is the ID of text Box

JavaScript OnFocus イベントに関する非常に基本的な質問をするのは恥ずかしいことです。

しかし、質問は知識の鍵です:)

編集: ASP.Net ページで HTML タグを使用してはいけません

何か助けはありますか?ありがとう。

4

5 に答える 5

2

jQueryを使用してみてください

jQueryを実装する方法:

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>

html:

<input type="text" />

css:

.grey { color:#aaa; }

jQuery:

var inputval = "";
$(document).ready(function() {
    // Define your default value to show on input
    $("input[type='text']").val("Enter your text here...");
    // Add grey color or optionally blur effect
    $("input[type='text']").addClass('grey');
    // Save your default value
    inputval = $("input[type='text']").val();
    $("input[type='text']").focusin(function() {
    // if textbox is empty or got the default value
    if ($(this).val() == "" || $(this).val() == inputval) {
        // Clear the box
        $(this).val("");
        // Remove grey color
        $(this).removeClass('grey'); }
    }).focusout(function() {
        // if textbox is empty
        if ($(this).val() == "") {
            // Put your Default value back
            $(this).val(inputval);
            // Add grey color
            $(this).addClass('grey'); }
    });
});

jsfiddle: http: //jsfiddle.net/BerkerYuceer/SWc6g/

これは実際には本当に悪いコーディングですが、これがどのように機能するかを理解できるはずです。

編集:これはより効率的なバージョンです

html:

<input type="text" />

jQuery:

$(document).ready(function() {
    Watermark("input[type='text']","Enter your text here...");
});

function Watermark(element, WatermarkString) {
    $(element).val(WatermarkString).css('color','#aaa');
    $(element).focusin(function() {
        if ($(this).val() == "" || $(this).val() == WatermarkString) {
            $(this).val("").css('color','#000'); }
    }).focusout(function() {
        if ($(this).val() == "") {
            $(this).val(WatermarkString).css('color','#aaa'); }
    });
};

jsfiddle: http: //jsfiddle.net/BerkerYuceer/vLJ2U/

于 2012-10-10T13:34:01.127 に答える
1

テキストフィールドで透かし効果を探していると思いますか?

その場合、いくつかの方法があります。

1) AjaxToolKit libraray ( Watermark Effect Demo Here )
を使用 2) HTML + CSS + jQuery を使用

<input type="text" id="text1" value="some text"/>
<script type="text/javascript">
  $(document).ready(function() {
    var tbval = $('#text1').val();
    $('#text1').focus(function() { $(this).val('');});
    $('#text1').blur(function() { $(this).val(tbval);});
  });
</script>

ソース:

于 2012-10-10T12:54:01.990 に答える
1

私は ASP.NET について何も知りませんが、onfocus リスナーを追加できるので、次のようなことができるはずです。

txtBox.Attributes.Add("Value", "Enter your text here...")
txtBox.Attributes.Add("OnFocus", "updateValue(this)")
txtBox.Attributes.Add("OnBlur", "updateValue(this)")

updateValue 関数は次のとおりです。

function updateValue(el) {
    if (el.value == el.defaultValue) {
      el.value = '';
    } else {
      el.value = el.defaultValue;
    }
}

上記は placeholder 属性を模倣しています。これは (IMO) めったに使用されるべきではない迷惑なインターフェイス機能です。

于 2012-10-10T12:41:05.107 に答える
1

このようなものを生成することは可能ですか?

<input type="text" placeholder="Enter your text here..." />

placeholder="Enter your text here..."したがって、実際にこの属性を<input />タグに追加する必要があります。

于 2012-10-10T11:58:31.987 に答える
1

これがあなたの意図したことですか?

<html>
<head></head>
<body>
    <input id="serachbox" type="text" onFocus="initText(this);" />

    <script type="text/javascript">

        var defaultText = 'Enter your serach here...'
        var initText = function(el){
            if(el.value == defaultText){
                el.value = "";
            }
        }

        var input = document.getElementById('serachbox');

        input.value = defaultText;
    </script>

</body>
</html>
于 2012-10-10T12:26:59.323 に答える