我有兩個數組,一個輸入名稱,一個輸入數值。有7個輸入,所以我做了一個循環,用它的值填充每個輸入,然後使它在輸入被聚焦時使文本消失,如果沒有輸入,則恢復原始值文本。這可能通過與jQuery循環做到嗎?在我看來,.live和.bind不適用於此目的。我將不得不在每個輸入事件重點&模糊事件硬核?使用jQuery的.live/.bind來影響由for循環創建的輸入
for (var i=0;i<7;i++) {
$('#user_' + input_names[i]).attr('value', default_values[i]);
$('#user_' + input_names[i]).live("blur", function(){
if(this.value == '')this.value=default_values[i];
});
$('#user_' + input_names[i]).live("focus", function(){
if(this.value == default_values[i])this.value='';
});
}
更新這裏,釋放陣列埃裏克要求:
var input_names = ['username', 'password'];
var default_values = ['Username', 'Password'];
for (var i=0;i<2;i++) {
$('#user_' + input_names[i]).attr('value', default_values[i]);
$('#user_' + input_names[i]).blur(function(){
if(this.value == '')this.value=default_values[i];
});
$('#user_' + input_names[i]).focus(function(){
if(this.value == default_values[i])this.value='';
});
}
動態生成'#user _...'元素嗎?我們可以看到生成它們的代碼嗎? – Eric 2011-06-08 17:25:10
#user_是輸入名稱的前綴。他們是這樣的:#user_username,#user _...等不是整數。 – Melanie 2011-06-08 17:46:53
這不能回答我的問題。如果你向我們展示生成它們的代碼,事情可以大大簡化。爲什麼不能在生成處理程序時附加處理程序? – Eric 2011-06-08 18:29:41