Ajax form + select
Всем привет.
Сделал форму на сайте через связку Ajax form + formit.
Не подскажите в чем моя ошибка? Спасибо!
Сделал форму на сайте через связку Ajax form + formit.
{$_modx->runSnippet('!AjaxForm', [
'snippet' => 'FormIt',
'hooks' => 'email',
'form' => '@INLINE:
<form action="{$_modx->makeUrl($_modx->resource.id)}" method="post" class="supporter">
<input type="text" name="f1Name" id="f1Name" value="[[!+fi.f1Name]]" class="supporter__item input input_white" placeholder="Имя *">
<input type="text" name="f1Surename" id="f1Surename" value="[[!+f1Surename]]" class="supporter__item input input_white" placeholder="Фамилия">
<input type="text" name="f1Email" id="f1Email" value="[[!+fi.f1Email]]" class="supporter__item input input_white" placeholder="E-mail">
<select name="f1District" id="f1District" class="supporter__item input input_white select">
<option [[!+fi.f1District:FormItIsSelected=`пусто`]] disabled selected value="">Удобный вам район Санкт-Петербурга</option>
<option id="mtr-1" [[!+fi.f1District:FormItIsSelected=`Адмиралтейский район`]] value="Адмиралтейский район">Адмиралтейский район</option>
<option id="mtr-2" [[!+fi.f1District:FormItIsSelected=`Василеостровский район`]] value="Василеостровский район">Василеостровский район</option>
<option id="mtr-3" [[!+fi.f1District:FormItIsSelected=`Всеволожский район Ленинградской области`]] value="Всеволожский район Ленинградской области">Всеволожский район Ленинградской области</option>
</select>',
'emailSubject' => '[[+f1Metro]] [[+f1Email]] ([[+f1Surename]] [[+f1Name]])',
'validate' => 'f1Name:required,f1Phone:required,f1District:required',
])}
При нажатии кнопки отправить, первый раз валидация проходит нормально, но если нажать еще раз, то поле select очищается, а все option пропадаютНе подскажите в чем моя ошибка? Спасибо!
Комментарии: 2
Нашел похожую тему modx.pro/help/8772/
Решение:
Решение:
<option [[!+fi.f1District:FormItIsSelected=``]] disabled selected value="">Удобный вам район Санкт-Петербурга</option>
закомментировал 37 строку в файле assets/components/ajaxform/js/default.jsform.find('.error').html('');
И теперь все работает нормально
Вот еще костыльнее костыль вместо 37 строчки вставить
form.find('.error').each(function( index ) {
if(!$(this).is('select')) {
$(this).html('');
}
});
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.