Ajax form + select

Всем привет.

Сделал форму на сайте через связку 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 пропадают

Не подскажите в чем моя ошибка? Спасибо!
Глеб
24 августа 2016, 15:33
modx.pro
2
3 140
0

Комментарии: 2

Глеб
30 августа 2016, 09:38
0
Нашел похожую тему modx.pro/help/8772/

Решение:

<option  [[!+fi.f1District:FormItIsSelected=``]] disabled selected value="">Удобный вам район Санкт-Петербурга</option>
закомментировал 37 строку в файле assets/components/ajaxform/js/default.js
form.find('.error').html('');
И теперь все работает нормально
    Константин Обухов
    29 ноября 2016, 17:16
    0
    Вот еще костыльнее костыль вместо 37 строчки вставить

    form.find('.error').each(function( index ) {
    	if(!$(this).is('select')) {
            	$(this).html('');
            }
    });
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      2