0

プレースホルダー テキストを表示する方法として、ページの読み込み時にinputテキスト フィールドの値をその値に設定する方法を見つけようとしています。titleHTML4 Strict doctype を使用しています。入力値にプレースホルダー テキストを保存したくありません。JavaScript を使用していない人が入力する前にテキストを削除する必要がないようにするためです。JavaScript で追加し、入力がフォーカスされたときに削除したい。focus()メソッドとメソッドはblur()機能していますが、入力のタイトルを関数に渡す初期ページロード関数を記述する方法がわかりませんval()

私は現在、このコードを持っています:

// This doesn't work, it grabs the page title:
$('#item-search').val(this.title);

// Works:
$('#item-search').focus(function() {
    if (this.value == this.title) {
        this.value = '';
    } 
});

// Works: 
$('#item-search').blur(function() {
    if (this.value == '') {
        this.value = this.title;
    } 
});
4

5 に答える 5

5

別のバリエーションを追加するだけで、関数をパラメーターとして受け入れる.val()ことができ、問題を解決できます。this

$('#item-search').val(function () {
    return this.title;
});
于 2012-04-16T17:33:50.130 に答える
3

this現在のスコープを参照します。最初の例では、 を参照していdocumentます。

あなたが望むかもしれません。

$('#item-search').val($('#item-search').attr('title'));

さらに良い:

var $itemSearch = $('#item-search');
$itemSearch.val($itemSearch.attr('title'));
于 2012-04-16T17:29:43.217 に答える
2
$('#item-search').val(this.title);

この行thisで document( html) を参照し、 を設定し<title>ます。あなたの仕事を達成するには、これを行います:

$('#item-search').val($('#item-search').attr('title'));
于 2012-04-16T17:30:37.260 に答える
1

これを試して:

$('#item-search').val($('#item-search').attr('title')); 
于 2012-04-16T17:30:04.073 に答える
1

これを試してください。

$('#item-search').val($("#item-search").attr("title"));
于 2012-04-16T17:33:10.240 に答える