1

私は変更できないこのクライアントフォーム(他の人によってコード化された)を持っています -

<p class="postal">
    <label for="postalcode">post code</label>
    <input id="postalcode" name="postalcode" type="text" value=""/>
</p>

既存の CSS では、ラベルが入力の「内」に設定されることが規定されています。そのため、ラベルをぼかし/非表示にする必要があります。

このマークアップが機能すると「推測」しましたが、残念ながら機能しません。

$(document).ready(function() {
    $('#postalcode').focus(function() {
       $('label').val('');
    });
});

CSSもHTMLも変更できません。ateotdの方が簡単だと確信しています。

これはjQueryで可能ですか?

編集:

すべての答えをありがとう、あなたはたくさんのロックです!ラベル全体ではなく、ラベルのテキストを非表示/消去したいというクエリの言い方を間違えました。だから私はうまくいく答えを「チェック」しました。

再度、感謝します。

4

4 に答える 4

1

ラベルには値がなく、テキストコンテンツがありますが、入力がフォーカスされているときに前のラベルを非表示にしないのはなぜですか:

$(function() {
    $('#postalcode').on('focus', function() {
       $(this).prev('label').hide();
    });
});
于 2013-03-11T18:57:53.830 に答える
1

.postal現在のオブジェクトの親を使用

ライブデモ

$(document).ready(function() {
    $('#postalcode').focus(function() {
       $(this).prev('label').text('');
    });
});
于 2013-03-11T18:57:45.703 に答える
0

このようなものは、フォーカス時にラベルを非表示にし、ぼかし時にラベルを表示します:

$(document).ready(function() {
    $('#postalcode').focus(function () {
        $(this).prev('label').hide();
    })
    .blur(function () {
        $(this).prev('label').show();
    });
});

http://jsfiddle.net/MhLsU/

クラスを使用すると、よりユニバーサルにすることができます。

$('.field input').focus(function () {
    $(this).prev('label').hide();
})
.blur(function () {
    $(this).prev('label').show();
});

HTMLで:

<p class="postal field">
    <label for="postalcode">post code</label>
    <input id="postalcode" name="postalcode" type="text" value="" />
</p>

http://jsfiddle.net/MhLsU/1/

だけでなく機能するようになりましたpostalcode

于 2013-03-11T18:58:07.487 に答える
0

ラベルを非表示にしたい場合

$(document).ready(function() {
    $('#postalcode').focus(function(){$('label').hide();});
});
于 2013-03-11T19:03:37.073 に答える