2012-11-14 9 views
5

HTMLjQueryの.focus()は、全て事前に充填されたテキスト

<input id="formloginusername" type="text" name="username" placeholder="Username" value="Pre-filled-from-database"></input> 

JSがハイライト表示されます強調表示されます。私は、ユーザーが塗りつぶされたテキストの後でそれをクリックしたかのように、カーソルをフィールドに表示したいだけです。

ありがとうございます!

+1

これはブラウザのデフォルト動作です。 – adeneo

+0

私はadeneoに同意します。それに加えて、このような入力にクローズタグを入れる必要はありません...代わりに、このような入力を閉じます。 VIDesignz

答えて

14

ここで気の利いた小さなトリックだ...

$(document).ready(function() { 
    var $field = $("#formloginusername"), 
     oldVal = $field.val(); 
    $field.focus().val('').val(oldVal); 
}); 

DEMO:

+1

パーフェクト!ありがとう! – GiantDuck

+0

これは素晴らしい例です、ありがとうございます。質問は次のとおりです。あなたのページに行きますが、それは焦点が当てられていますが、ユーザーが入力を開始すると、テキストがクリアされず、テキストが追加されます。つまり、あなたの価値は「ここで検索!あなたは「大学の数学の本」と入力すると、「ここで検索!大学の数学の本」となります。これを避ける方法は? EDIT:$( "input.search-input-header")[0] .reset(); OKですが、クリックした場合に限ります。あなたはどのようにフォーカスを設定し、入力を開始するときにそれをクリアしますか? – DnfD

+1

@DavidPardy - 古いブラウザについて心配していないなら、あなたは 'placeholder'属性のデフォルト動作を記述していると思います。 ' ' – ahren

0

http://jsfiddle.net/X7Y8S/はただ、これが行います:私はあなたの方法がある使用してChromeで見つけたもの

$('#field').focus().val($("#field").val()); 
0

Hopstreamを、カーソルがテキストの最後に移動しました。 カーソルをテキストの強調表示なしでフィールドの先頭に合わせる方法が必要でした。 これは私のために働いた:。

$( '#1 ELEMENTID')それぞれ(関数(){ $(この).focus(); this.selectionEnd = this.selectionStart; })。

関連する問題