输入模糊和窗口模糊

时间:2012-07-31 21:24:30

标签: jquery forms input focus blur

所以我有这个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);
    });
});​

2 个答案:

答案 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'));
        }
    });
});​

http://jsfiddle.net/mblase75/KDAM8/1/

答案 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);
    });
});​
相关问题