Добрый день, всем!
Возникла проблемка, написал снипет для фомы, где можно будет заказать звонок вводя в поле только цифры!
Нашел для этого класс валидации «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>