【问题标题】:Input focus Jquery issue输入焦点Jquery问题
【发布时间】:2011-11-04 14:16:42
【问题描述】:

我正在尝试修复这段代码,它在 Click 上删除了输入的值,然后在 Blur 上将值返回到输入中。您可以在此处查看我的 jsFiddle 以了解我的意思:

JSfiddle

问题

前两个输入似乎工作,但其余的似乎没有做任何事情。它似乎也不适用于 textarea。这里有奇怪的行为,但我确信一个 Javascript 负责人可以解决这个问题。

非常感谢!

【问题讨论】:

    标签: javascript jquery input textarea onblur


    【解决方案1】:

    现在它可以工作了::-) http://jsfiddle.net/maniator/3Ys7c/3/

    使用 jQuery data() 属性:

    jQuery(document).ready(function($) {
        $("input, textarea").focus(function() {
            if (!$(this).data('original')) {
                $(this).data('original', $(this).val());
            }
            if ($(this).val() == $(this).data('original')) {
                $(this).val('').css({
                    'color': "#999999",
                    'background-color': '#c6e9ff'
                });
            }
        });
        $("input, textarea").blur(function() {
            if ($(this).val() == "") {
                $(this).val($(this).data('original')).css({
                    'background-color': '#ffffff'
                });
            }
        });
    });
    

    您的不起作用的原因是因为您使用的是this.id,而他们都没有。如果您只使用每个输入的data 属性,那么每个输入都知道它应该和不应该是什么:-)

    【讨论】:

    • 太棒了!也感谢您的解释@Neal :-)
    • @remi90 也 - 不要使用 attr('value') 这就是 .val() 的用途。
    【解决方案2】:

    或者简单地给你的元素一个id=""属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多