所以我有这个jsFiddle(http://jsfiddle.net/KDAM8/),并试图弄清楚如何使输入保持窗口模糊的价值。当您专注于输入,然后alt + Tab输出,或单击另一个屏幕,然后返回,它不保持正确的值。我不仅难以理解为什么会发生这种情况,我也很难解释它。希望你能理解我对jsFiddle的要求。
<input type="text" value="name" />
<input type="password" value="password" />
$('input').each(function() {
var itemVal;
$(this).focus(function() {
itemVal = $(this).val();
$(this).val('');
});
$(this).blur(function() {
$(this).val(itemVal);
});
});
答案 0 :(得分:2)
改进了getuskar的方法:如果你在元素的.data
中缓存每个字段的初始值,你可以将它与焦点和模糊的现有值进行比较,以获得所需的效果:
$('input').each(function() {
$(this).data('itemVal', $(this).val());
$(this).focus(function() {
if ($(this).val() === $(this).data('itemVal')) {
$(this).val('');
}
});
$(this).blur(function() {
if (!$.trim($(this).val())) {
$(this).val($(this).data('itemVal'));
}
});
});
答案 1 :(得分:-1)
调试并尝试了解我所做的更改 -
$('input').each(function() {
var itemVal;
$(this).focus(function() {
itemVal = $(this).val();
if (itemVal === 'name' || itemVal === 'password') // added
$(this).val('');
});
$(this).blur(function() {
itemVal = $(this).val(); // added
if (itemVal !== 'name' || itemVal === 'password') // added
$(this).val(itemVal);
});
});