2013-08-25 4 views
5

私はJQueryをかなり新しくしているので、この問題をどこから始めるべきかはわかりませんでした。JQueryでフォームのプレースホルダテキストを循環させますか?

私は、さまざまなプレースホルダーを一時的に表示して、それらを順番に表示するフォームを持っています(NAMEフォームの入力には、Alice、Bob、Charlesなどのように、 )をクリックして自分のテキストを入力します。

私はこの例を見つけました - http://jsfiddle.net/eFjnU/(以下のコード) - テキストを繰り返しますが、フォーム入力領域の一時的なプレースホルダにどのように適用できますか?

あなたが入力にdiv要素から上記変更することができます

var divs = $('div[id^="content-"]').hide(), 
    i = 0; 

(function cycle() { 

    divs.eq(i).fadeIn(400) 
       .delay(1000) 
       .fadeOut(400, cycle); 

    i = ++i % divs.length; 

})(); 

HTML

<div id="content-1">Sample text 1</div> 
<div id="content-2">Sample text 2</div> 
<div id="content-3">Sample text 3</div> 
<div id="content-4">Sample text 4</div> 
<div id="content-5">Sample text 5</div> 
<div id="content-6">Sample text 6</div> 
<div id="content-7">Sample text 7</div> 

jQueryのが、その意志サイクル全体の入力ボックスとアウト、と私はへの唯一のプレースホルダーテキストをしたいですフェードイン/アウト。

EDIT 1:たとえば

<input type="text" name="whatever" type="text" placeholder="Alice"> 
<input type="text" name="whatever" type="text" placeholder="Bob"> 
<input type="text" name="whatever" type="text" placeholder="Charles"> 
+1

あなたがしようとしていることは本当に明確ではない – Itay

+0

上記の新しい編集をご覧ください。 – alxlvt

+0

あなたはそれらをすべて同じ入力にしたいですか? – Itay

答えて

4
あなたはプレースホルダーテキストをアニメーション化することはできませんが、あなたが定期的に属性を変更する機能を作成することができ

Demo fiddle

var placeholders = ['Alice','Bob','Charles']; 

(function cycle() { 
    var placeholder = placeholders.shift(); 
    $('input').attr('placeholder',placeholder); 
    placeholders.push(placeholder); 
    setTimeout(cycle,1000); 
})(); 

あなたが欲しいものを基本的に現在、マイナスフェードイン/フェードアウト

+0

あなたはこの解決策がうまくいかない理由を教えてください。http://jsfiddle.net/L24vR/ –

+0

@FaceOfJock 'delay()'はデフォルトでアニメーションキューとしか動作しません。それを要素で呼び出す必要があります、グローバル関数ではありません –

+0

私もsetTimeoutを使用しようとしましたが、それは動作していません:http://jsfiddle.net/kADwN/ 任意の提案? –

0

プレースホルダテキストは、コンテナを必要とします。これは何でもかまいません。入力フィールドの上または下のスパンまたはラベルタグと同じくらい簡単です。

+0

これが機能するかどうかはわかりません。新しい編集を見てください。私は、入力タグのプレースホルダテキストを順番に調べています。 – alxlvt

関連する問題