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: 'Поле обязательно!'
            }
        }
    });


В чем может быть проблема, как можно проверить?
  • Вопрос задан
  • 2037 просмотров
Решения вопроса 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,
мож документ рэди забыли
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы