значения input меняются при нажатии f5 в браузере

AdeL1ne

Новичок
Делаю форму регистрации в модальном окне и столкнулся с такой проблемой:

Поскольку решил выпендриться и поместить надписи 'Имя пользователя', 'пароль' и т.д. в атрибут value соответствующих input'ов, пришлось понаписать событий (focus,blur) при которых эти значения исчезают, меняются на те, которые введены и т.д. В итоге, все вроде бы заработало, но проблема в том, что если ввести в input логина какое-нибудь значение, а потом нажать f5, то начальным значением присваивается то, что я ввел.
Ну для примера:
При загрузке страницы в поле логина стоит значение - 'Имя пользователя', при фокусе этого input'a атрибут value становится пустым, а при событии blur, если ничего не вводилось, должно вернуться value='Имя пользователя', но вместо этого, после ввода в поле логина какого-либо значения и нажатии f5. Это значение заменяет 'Имя пользователя'. Корявенько объяснил конечно, сам еще плаваю во всем этом.

Что бы не быть совсем голословным приведу немного кода, может будет понятнее о чем я:

PHP:
<input id="user" type="text" size="30" maxlength="30" name="user" value="имя пользователя" />
PHP:
var start_value_user = $('#user').val();
$('#user').focus(function() {
    if ($('#user').val() == start_value_user)
    {
        $(this).val('').css({'color' : '#000000'});
        
    }
});

$('#user').blur(function() {
    if ($('#user').val() == '')
    {
        $(this).val(start_value_user).css({'color' : '#858585'});
    }
});
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
это чудофича чудобраузера файрфокс :D
Что как-бы прикольно, рефрешнул браузер, а данные введенные браузером, остались.

и НЕ НАДО МЕНЯТЬ привычное для людей ПОВЕДЕНИЕ браузера
 

AdeL1ne

Новичок
ну IE реагирует так же, думаю это все же чудо фича моего скрипта
 

fixxxer

К.О.
Партнер клуба
>>Поскольку решил выпендриться и поместить надписи 'Имя пользователя', 'пароль' и т.д. в атрибут value соответствующих input'ов, пришлось понаписать событий (focus,blur) при которых эти значения исчезают, меняются на те, которые введены и т.д.

Это, наверное, самая популярная вещь которую все делают неправильно )

Не надо менять input value, надо вешать label поверх абсолютным позиционированием. Вот пример

PHP:
<!DOCTYPE html>
<html>
<head>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
    <script>
        $(function() {
            var
                hide = function() { $('span', $(this).closest('label')).hide() },
                show = function() { if (!$(this).attr('value').length) $('span', $(this).closest('label')).show(); };
            $('label.abstitle input').focus(hide);
            $('label.abstitle input').blur(show);
            $('label.abstitle input').each(show);
        });
    </script>
    <style>
        label.abstitle { position: relative; }
        label.abstitle span { position: absolute; top: 0; left: 0; bottom: 0; right: 0; display: none; }
    </style>
</head>
<body>
<form>
    <label class="abstitle"><span>Username</span><input type="text" /></label>
    <label class="abstitle"><span>Password</span><input type="text" /></label>
</form>
</body>
</html>
 

fixxxer

К.О.
Партнер клуба
Есть-то оно есть, но в MSIE оно вообще не работает, даже в 9-м. А затычки кривые ужасно, посмотри что оно делает с input type=password.
По уму надо бы такой затычкой динамически создавать вокруг этого абсолютно позиционированный label, но как-то сложновато получается.

А так то оно да. Ну как всегда во всем виноват IE :)
 

damner2

Новичок
fixxxer
Если поискать, думаю можно легко найти и затычки с динамически создаваемыми label.
С password проблемы есть, если для них был указан id, но нужно бывает редко...
А так, скриптики для большинства случаев подходят очень хорошо :)
 
Сверху