Глобальное восстановление значения по умолчанию для ввода на focusOut при val == "" - PullRequest
0 голосов
/ 28 марта 2020

Я создал форму для своего веб-сайта и назначил значения по умолчанию для каждого ввода, чтобы сделать их более доступными. Я использую javascript, чтобы при наличии значения по умолчанию и фокусе ввода значение менялось на "". Это также работает наоборот - когда значение пустое и вы фокусируете, javascript автоматически заполняет значение. Сценарий выглядит следующим образом:

$('#form .input_1').focus(function(){
        if ($(this).val() === 'Project_date') {
            $(this).val('');
        }
    });

    $('#form .input_1').focusout(function(){
        if ($(this).val() === '') {
            $(this).val('Project_date');
        }
    });

$('#form .input_2').focus(function(){
        if ($(this).val() === 'Project_name') {
            $(this).val('');
        }
    });

    $('#form .input_2').focusout(function(){
        if ($(this).val() === '') {
            $(this).val('Project_name');
        }
    });

Теперь, несмотря на то, что это рабочий сценарий, мне кажется, что это решение не очень чистое и, конечно, у меня больше входных данных, чем два, поэтому я в основном повторяю то же самое строки кода для каждого входа меняются только селекторы и назначенные значения. Мне было интересно, есть ли более элегантный способ добиться того же результата? что-то вроде:

$('#form input').focus(function(){
        if ($(this).val() === defaultValue) {
            $(this).val('');
        }
    });

$('#form input').focusout(function(){
        if ($(this).val() === '') {
            $(this).val(defaultValue);
        }
    });

Спасибо за ваш ответ !!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...