2012-05-30 171 views
-1

我希望有一個搜索框輸入字段,在未聚焦時閃爍多個默認值。如在「紐約」中持續3秒,然後「洛杉磯」持續3秒等,或者模擬這些打字也會很好。輸入字段的多個默認值

我所做的就是這個

http://jsfiddle.net/5aD7W/1/

但問題是,.VAL()獲取每3秒覆蓋,即使它的重點。

+1

爲什麼要這麼做?這聽起來像一個UI功能,可能會混淆你的用戶。 –

+0

@RoryMcCrossan。該死的,我喜歡比賽太多,我爲他做了...... :( – gdoron

+0

@gdoron我知道這種感覺,你看到一個非常糟糕的問題,但你不得不尋找一個解決方案:D –

回答

3

方式一:

var words = ['New York', 'Los Angeles', 'Home']; 
var $search = $('#searchId'); 
var index = -1; 

function foo() { 

    if ($search.is(':focus')) { 
     return; 
    } 
    index++; 
    $search.val(words[index % words.length]); 
}​ 

setInterval(foo, 3000); 

Live DEMO

+0

這個問題是,如果我添加一個$ search.val('');返回之前清除搜索框,它最多需要輸入間隔時間才能生效。如果時間間隔是5秒,那麼這是個問題 – glasspill

+0

@glasspill。我不明白是什麼問題,告訴我如何重現它。 – gdoron

+0

已修復。我添加了這一行$ search.focus(function(){this.value =「」});最後清除焦點值。謝謝。 – glasspill

1

你將需要一些腳本來做到這一點,所以jQuery是一個好方法。簡單的標記不會解決您的問題。相關閱讀:那我想出了Changing the "placeholder" attribute of HTML5 input elements dynamically using Javascript

+0

先生,不要誤解我的意思,但告訴那個人他需要編寫代碼,並且鏈接不是一個明確的答案。 – gdoron

+0

我沒有試圖真正解決他的問題,而是給他一個顯然他對腳本沒有任何線索,並且提供「讀取 - 複製 - 粘貼」代碼並不會提高他在這個領域的技能,在這裏給出其他解決方案,他會再次提出這樣的問題明天 – Michael

+0

大概是真的,但是如果你不試圖解決他的問題,你應該使用註釋。祝你好運先生! – gdoron

2

你可以像下面這樣做Demo on JsFiddle

在HTML

<input id="txtCity" type="text" value="New York" />​ 

腳本

arr = ["New York", "Los Angesles", "London"]; 
txtCity = $('#txtCity'); 
i=0; 
setInterval(function(){ 

    if (txtCity.is(':focus')) 
     return; 
    txtCity.val(arr[i++]); 
    if(i==arr.length) 
     i = 0; 
}, 2000); 

$('#txtCity').focus(function(){ 
    this.value="" 
}); 
​ 
​ 
+0

幾件事情。 ** 1。**您可以使用模塊運算符('%')。 ** 2。**你不檢查焦點。 ** 3。**您不需要在每個時間間隔查詢元素,將其緩存。 – gdoron

+0

謝謝@gdoron,我糾正了焦點不足 – Adil