フォーカスがないときに複数のデフォルト値を点滅させる検索ボックス入力フィールドが欲しいのですが。「ニューヨーク」で3秒間、「ロサンゼルス」で3秒間など、またはこれらの入力をシミュレートするのもよいでしょう。
私がやったことはこれです
ただし、問題は、フォーカスが合っている場合でも、.val()が3秒ごとにオーバーライドされることです。
フォーカスがないときに複数のデフォルト値を点滅させる検索ボックス入力フィールドが欲しいのですが。「ニューヨーク」で3秒間、「ロサンゼルス」で3秒間など、またはこれらの入力をシミュレートするのもよいでしょう。
私がやったことはこれです
ただし、問題は、フォーカスが合っている場合でも、.val()が3秒ごとにオーバーライドされることです。
私が思いついた1つの方法:
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);
あなたはJsFiddleでこのデモのようにそれを行うことができます
HTMLで
<input id="txtCity" type="text" value="New York" />
INスクリプト
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=""
});
これを行うにはスクリプトが必要になるため、jQueryが適しています。単純なマークアップでは問題は解決しません。関連:Javascriptを使用してHTML5入力要素の「プレースホルダー」属性を動的に変更する