@Arh1diablo
Web мастер

Как проверить checked при загрузке страницы и убрать задержку?

Доброго времени суток, есть 2 текстовых инпута name="client" и name="turist1" и один чекбокс #superclient

При загрузки страницы чекбокс активен, и когда он активен задача, что бы при вводе в инпут name="client" дублировалась информация в name="turist1" , при отжатии чекбокса, что бы каждый инпут жил не зависимо друг от друга, я написал следующий JS код:

$('#superclient').on('change', function () {
    if ( $(this).is(':checked') ) {
        $('input[name="client"]').on('input', function() {
            $('input[name="turist1"]').val($(this).val());

            $('input[name="turist1"]').prop("disabled",true);
        });
    } else {
        $('input[name="turist1"]').prop("disabled",false);

    }
})


и столкнулся с 2мя проблемами:
1. Что бы код сработал надо выключить \ включить чекбокс.
2. Я ввел инфу при отлкюченном чекбоксе в name="client" , активировал чекбокс, но инфа туда продублируется не сразу, а только если я начну дальше печатать

Как можно решить эти вопросы ?
  • Вопрос задан
  • 190 просмотров
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
Нужна функция, которая будет проверять чекбокс и копировать контент при включённом.
Вызывать её:
  1. при изменении чекбокса
  2. при вводе в client
  3. при загрузке страницы
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Kozack
@Kozack Куратор тега JavaScript
Thinking about a11y
Напишите функцию, которая будет выполнять всю работу один раз:
Проверяет включен ли нужный чекбокс, есла да -- скопирует значение из одного инпута в другой, если нет -- выключит второй инпут и так далее -- вся нужная вам логика работы.
Вызовите эту функцию один раз и потом дополнительно добавьте её как обработчик события input для первого инпута
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
02 дек. 2024, в 23:30
1000 руб./за проект
02 дек. 2024, в 23:06
2000 руб./за проект