@Alex_vs_Predator
Начинающий веб-разработчик

Evolution CMS — FormLister. ввод цифр с помощью валидации работает?

Добрый день, всем!
Возникла проблемка, написал снипет для фомы, где можно будет заказать звонок вводя в поле только цифры!
Нашел для этого класс валидации «numeric».
Начал тестировать форму, а она не отправляет сообщение на email...
Т.е. работает как, если у меня пустое поле, естественно ничего не должно отправлятся.
Если я ввожу буквы — тогда всплывает текст «Введите номер правильно», а значить понимает, что вводится буквы, а не цифры, НО если ввожу цифры, тогда форма просто ничего не отправляет..

Добавил к форме ajax + скрипт — но ничего не помогает

Снипет:
<div class="modal_inner modal_request">
		[!FormLister?
		&formid=`request`
		&rules=`{
			"phone": {
				"numeric" : {
					"params": [0,1,2,3,4,5,6,7,8,9],
					"message":"Введите номер правильно"
				}
			}
		}`
		&formTpl=`@CODE:
		<form method="post">
			<input type="hidden" name="formid" value="request">
            <input type="text" name="phone" placeholder="Введите телефон" class="[+phone.errorClass+][+phone.requiredClass+]" value="[+phone.value+]">
            <button type="submit" class="last_button">Жду звонка</button>
            <p class="you_can">Или Вы можете позвонить нам прямо с сайта*</p>
			<a href="tel:[*phone3*]" class="first_button">Позвонить</a>
            <p class="call_us">* Для совершения звонка необходимы микрофон и наушники</p>
        </form>`
		&successTpl= `@CODE: 
             	<div class="alert alert-success mt-3">
                 	<h3>Thanks!</h3>
                 	<p>your message has been sent.</p>
             	</div>`
		&messagesOuterTpl=`@CODE:<div class="alert alert-danger" role="alert">[+messages+]</div>`
		&errorTpl=`@CODE:<span class="help-block">[+message+]</span>`
		&errorClass=` has-error`
		&requiredClass=` has-warning`
		&to=`sniper.semenov@ukr.net`
		&subject=`Новый звонок`
		&reportTpl=`@CODE:
		<p>Телефон: [+phone.value+]</p>`
		!]
    </div>


Ajax форма:
switch($_GET['q']){     
	case 'request':
		echo $modx->runSnippet('FormLister', array(
			'formid' => 'request',
			'to' => $modx->config['emailsender'],
			'subjectTpl' => 'Новый звонок',
			'errorClass'=> ' has-error',
			'requiredClass'=> ' has-warning',
			'rules'=> '{
               	"phone": {
					"numeric" : {
						"params": [0,1,2,3,4,5,6,7,8,9],
						"message":"Введите номер правильно"
					}
				}
            }',
			'messagesTpl' => '@CODE:<div class="form-messages alert alert-danger">[+required+]
[+errors+]</div>',
            'errorTpl'=>'@CODE: [+message+]',
            'successTpl'=> '@CODE: 
             	<div class="alert alert-success mt-3">
                 	<h3>Cпасибо</h3>
                 	<p>Ваша заявка принята!</p>
             	</div>',
            'formTpl' => '@CODE:
		<form method="post">
			<input type="hidden" name="formid" value="request">
            <input type="text" name="phone" placeholder="Введите телефон" class="[+phone.errorClass+][+phone.requiredClass+]" value="[+phone.value+]">
			[+phone.error+]
            <button type="submit" class="last_button">Жду звонка</button>
            <p class="you_can">Или Вы можете позвонить нам прямо с сайта*</p>
			<a href="tel:[*phone3*]" class="first_button">Позвонить</a>
            <p class="call_us">* Для совершения звонка необходимы микрофон и наушники</p>
        	</form>', 
			'reportTpl'=>'@CODE:
			<p>Телефон: [+phone.value+]</p>',
			));
			die();
        break;
}


Скрипт:
<script type="text/javascript">
	//see plugin evoAjax
	 $(document).on('submit','.modal_request form',function(ev){
        var frm = $('.modal_request form');
        $('.last_button').prop( "disabled", true );
		 //alert( frm.serialize());
        $.ajax({
            type: 'post',
            url: '[(site_url)]request', 
            data: frm.serialize(),
            success: function (data) {
   				$('.modal_request').empty();
                $('.modal_request').html( data ); 
            }
        });
        ev.preventDefault();
    });
</script>
  • Вопрос задан
  • 532 просмотра
Пригласить эксперта
Ваш ответ на вопрос

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

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