получить значение по умолчанию для ввода после изменения

0

Я хотел бы знать, как можно получить значение по умолчанию для поля ввода после .val() было изменено значение .val(). Моя разметка - это разные текстовые входы с классами .large и .medium и у меня есть текстовое значение по умолчанию в каждом поле.

То, что я хочу сделать, - когда пользователь focusin в поле, значение по умолчанию исчезает. При focusout поля возвращается значение по умолчанию. Теперь, когда пользователь уже набрал что-то, поле сохраняет focusout значение даже при focusout но то, что я не могу заставить работать, - если пользователь удаляет свой текст и фокусируется, значение по умолчанию должно появляться снова.

Мой код:

        var $inputs = $('.large, .medium');
        var allowSaveVal = true;    

        $inputs.on('focusin', this, function() { 
             saveVal = $(this).val();
             if (allowSaveVal) $(this).val('');
        });

        $inputs.on('keydown', this, function() {
            allowSaveVal = false;
            $(this).css('color', '#000000');
        });

        $inputs.on('focusout', this, function() { 
            if($(this).val() == '') $(this).val(saveVal);
            if (allowSaveVal) $(this).val(saveVal);
        });

Надеюсь, мой вопрос ясен. Благодарю!

  • 0
    Вам не нужно кодировать это, просто используйте атрибут placeholder . Пример: <input type="text" placeholder="default text">
  • 0
    @Hatsjoem Хацджоем, как все просто, я не знал этого атрибута. Вы можете сделать это как ответ?
Показать ещё 1 комментарий
Теги:

4 ответа

2
Лучший ответ

Вам не нужно это кодировать, просто используйте атрибут placeholder.

Пример:

<input type="text" placeholder="default text">

  • 0
    спасибо, что сделал это! Я должен выучить немного attr!
  • 0
    просто убедитесь, что ваша аудитория использует браузеры, где поддерживается атрибут placeholder , посмотрите здесь: http://stackoverflow.com/questions/4004087/html-placeholder-browser-compatibility
Показать ещё 4 комментария
2

Вы можете использовать "placeholder" в своих html-кодах вместо js или jquery.

<input type="text" placeholder="yourdefaultvalue" />

Если пользователь вводит значение во вход и фокус, значение не исчезает.

1

Сохраните значение в переменной в коде js, прежде чем что-либо измените, и вы сможете позвонить позже.

var largeInit = $('.large').val();
var mediumInit = $('.medium').val();
  • 0
    проблема в том, что есть несколько входов, но только 2 класса, я не знаю, как выбрать каждое значение, а затем назначить его правильному.
  • 0
    я только добавил немного кода, это не помогает?
Показать ещё 4 комментария
0

Если я полностью понимаю ваш вопрос, тогда вы можете сделать это с атрибутом place-holder для этого элемента html

пытаться:

<input type='text' placeholder='This your default value' />   

Если это поможет, не забудьте принять ответ.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню