Справка по событиям JQuery focus / blur

$(document).ready(function() {

    $('#username').focus(function() {
        $(this).val('');
    })
    $('#username').blur(function() {
        var l = $(this).val.length;
        if (l == 0) {
            $(this).val('Username');
        }
    })

});

Предполагается, что приведенный выше код очищает значение поля ввода #username, когда оно сфокусировано, и заполняет удобное для пользователя «Имя пользователя», когда оно теряет фокус, если оно все еще пусто.

Хотя вторая часть не работает (я думаю, что есть проблема с условием if, которое я использую?).

13.10.2009 10:09:09
2 ОТВЕТА
РЕШЕНИЕ

Для второй строки вашей функции размытия попробуйте

var l = $(this).val().length;

Кроме того, попробуйте предупредить об этом значении, чтобы убедиться, что оно в порядке.

3
13.10.2009 10:12:47

Используйте $(this).val().lengthвместо этого. $(this).valтолько ссылается на функцию. А lengthатрибут функции - это число ожидаемых аргументов, а не длина возвращаемого значения этой функции.

3
13.10.2009 10:12:10