清除焦点上的输入默认值,如果模糊处于空值,则将值填充回来

时间:2012-08-12 22:11:52

标签: jquery

我需要它来清除焦点上的默认输入值,如果模糊时值为空,则返回值。这是我目前的代码:

$(document).ready(function() {
    function toggleText(selector, value) {
        $(selector).focus(function() {
            if ($(this).val == value) {
                $(this).val('');
            }
        });
        $(selector).blur(function() {
            if ($(this).val == '') {
                $(this).val(value);
            }
        });
    }
    toggleText('input[name="first-name"]', 'First name...');
});

1 个答案:

答案 0 :(得分:2)

它是$(this).val(),而不是$(this).val

$(document).ready(function() {
    function toggleText(selector, value) {
        $(selector).focus(function() {
            if ($(this).val() == value) {
                $(this).val('');
            }
        });
        $(selector).blur(function() {
            if ($(this).val() == '') {
                $(this).val(value);
            }
        });
    }
    toggleText('input[name="first-name"]', 'First name...');
});

修改

但我认为这样做更好:

$(document).ready(function() {
    function toggleText(selector) {
        $(selector).focus(function() {
            if ($(this).val() == $(this)[0].defaultValue) {
                $(this).val('');
            }
        });
        $(selector).blur(function() {
            if ($(this).val() == '') {
                $(this).val($(this)[0].defaultValue);
            }
        });
    }
    toggleText('input[name="first-name"]');
});

如果您使用this plugin,则可以使用$(this).defaultValue()