Задать вопрос
serii81
@serii81
Я люблю phр...

Почему не работает скрипт в модальном окне?

У меня несколько форм, есть статичные и которые открываются в модальном окне.
Статичные работают.
Я использую для валидации jquery-validation и jquery-inputmask.
Вот я подключил скрипты, а потом модальные окна
5b39e03cb9a15808307336.jpeg

Вот код формы из модального окна
<form class="form" id="js-modals_request">
				<div class="form-group">
					<label for="modals_request_user">Ваше имя</label>
					<input type="text" id="modals_request_user" placeholder="Имя">
				</div>

				<div class="form-group">
					<label for="modals_request_phone">Номер телефона</label>
					<input type="text" class="mask" id="modals_request_phone" placeholder="+7">
				</div>

				<div class="aggree">
					<label>
						<input class="checkbox" type="checkbox" name="checkbox-test" checked>
						<span class="checkbox-custom"></span>
						<span class="label">Я даю согласие на
						<a href="#">обработку персональных данных</a>
					</span>
					</label>
				</div>


				<input type="submit" class="btn" value="Отправить заявку">
			</form>
			<!--form-->


А вот код скрипта
$('#js-modals_request .mask').inputmask("+7 (999) 999-9999", { "clearIncomplete": true });

    $('#js-modals_request').validate({
        rules: {
            modals_request_user: {
                required: true
            },
            modals_request_phone: {
                required: true
            }
        },
        messages: {
            modals_request_user: {
                required: 'Поле обязательно!'
            },
            modals_request_phone: {
                required: 'Поле обязательно!'
            }
        }
    });


В чем может быть проблема, как можно проверить?
  • Вопрос задан
  • 2101 просмотр
Подписаться 1 Простой Комментировать
Решения вопроса 2
Vlad_IT
@Vlad_IT Куратор тега JavaScript
Front-end разработчик
В том, что в момент выполнения скрипта, скорее всего, элемента $('#js-modals_request .mask') не существует. Попробуйте этот скрипт закинуть в $(function() { }) или до него вставить alert($('#js-modals_request .mask').length) - этот код должен вывести кол-во найденных элементов, если там 0, то скрипт не видит элемент, если больше нуля, то проблема в другом. Также смотрите консоль. Попробуйте также свой скрипт вставить в консоль при открытой модалке, будет работать?
Ответ написан
serii81
@serii81 Автор вопроса
Я люблю phр...
Решил проблему следующим образом
let modalsRequest = $('#js-modals_request');

 modalsRequest.on('submit', function(e){
        e.preventDefault();

        modalsRequest.validate({
            rules: {
                modals_request_user: {
                    required: true
                },
                modals_request_phone: {
                    required: true
                }
            },
            messages: {
                modals_request_user: {
                    required: 'Поле обязательно!'
                },
                modals_request_phone: {
                    required: 'Поле обязательно!'
                }
            },
            submitHandler: function(form) {
                $('.modal-request').fadeOut(200);
                $('.thanks-content').fadeIn(600);

                setTimeout(function(){
                    form.submit();
                }, 6000);
            }
        });
    });
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Rema1ns
@Rema1ns
и так сойдет
Форма, вызывается как ? через аякс? Если да, то надо переинициализировать скрипты. Если нет, то посмотреть js,
мож документ рэди забыли
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы