テキストフィールド(HTMLフォーム)をクリックして何かを書き込むにはどうすればよいですか?JQueryを空にするテキストフィールドをクリックしたとき
擬似コード:
On click #searchform
Erase String in #searchform
テキストフィールド(HTMLフォーム)をクリックして何かを書き込むにはどうすればよいですか?JQueryを空にするテキストフィールドをクリックしたとき
擬似コード:
On click #searchform
Erase String in #searchform
$('#searchform').click(function() {
if ($(this).val() == 'Enter search term') {
$(this).data('original', $(this).val()).val('');
}
});
$('#searchform').blur(function() {
if ($(this).val() == '') {
$(this).val($(this).data('original'));
}
});
EDIT今のところ、あなたはplaceholder属性を使用する必要がありますし、あなたがしたい場合は、不足しているためポリフィルとして上記を使用しますプレースホルダのサポート。
if (!('placeholder' in document.createElement('input'))){
$('input[placeholder]').each(function() {
$(this).placeholder();
});
}
元のコードをプラグインに変えて、簡単に使用できるようにします(いくつかの小さな改造機で)。
jQuery.fn.placeholder = function() {
return this.each(function() {
var value = $(this).attr('placeholder');
jQuery(this).val(value).addClass('placeholder');
jQuery(this).focus(function() {
if (jQuery(this).val() == value) {
jQuery(this).val('').removeClass('placeholder');
}
});
jQuery(this).blur(function() {
if (jQuery(this).val() == '') {
jQuery(this).val(value).addClass('placeholder');
}
});
});
};
この方法で検証を追加するのは難しいです。フィールドが必要であると想像してください。次に、必要なフィールドバリデーターは初期値を除外しなければなりません。また、プレースホルダ(または少なくとも異なる色)に異なるフォントを使用したいと考えている場合は、クラスをtoggleする必要があります。私は 'placeholder'属性が行く方法だと思います。 –
そうですが、これは2010年に行われました。プレースホルダが知られておらず、ブラウザによく実装されていました。もちろん、今は別の時です。しかし私は自分の答えを更新すべきです。 – tbleckert
$('#searchform').click(function() { $(this).val('') })
あなたは、このようなとしてフィールドからデフォルト値をクリアするために欠けている場合は、「検索用語を入力し、」私は次のコードを使用し
function clearText(thefield){
if (thefield.defaultValue==thefield.value)
thefield.value = ""
}
をして、私の入力フィールドに、私は追加します。
onfocus="clearText(this)"
だから、それは次のようになります。
<input type="text" name="username" value="enter your name here" onfocus="clearText(this)">
HTML5プレースホルダ属性を使用することをおすすめします。例:
<input type="text" placeholder="some default string if empty" />
これは最新のブラウザのほとんどで動作し、古いものは回避策jQueryプラグインがあります。ここにはplaceholder pluginへのリンクがあります。
は、それから、あなたは、単に呼び出す:
$('input[placeholder]').placeholder();
プレースホルダのデモhttp://davidwalsh.name/dw-content/html5-placeholder.phpはFF 3.5で動作しません - 私はこのために余分なプラグインを使いたくありません。 – Tomkay
@Tomkayここでは、プレースホルダーがおすすめの方法です。ブラウザがModernizrでサポートしているか、単純なjavascriptでサポートしているかを検出できます。私は今、IE <= 8だけがpolyfillを使用すると思います。 –
ええ、私はHTML5が今仕事をするのに十分なほど人気があると思います。新しいプロジェクトでもブラウザの検証を使用します。 – Tomkay
は、なぜあなたはそれをしたいですか?何か間違った入力をして編集したい場合はどうすればよいですか?テキストフィールドに元のテキスト(検索キーワードを入力するなど)が含まれている場合、そのテキストフィールドをクリックすると削除されるはずです。右? – tbleckert
@tbleckert確かに。私はそれが標準的なusabillityものだと思う。だから、ユーザが怒られるように条件分岐を必要とする。 – Tomkay
なぜHTML 5プレースホルダ属性を使わないの? –