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 пропадают

Не подскажите в чем моя ошибка? Спасибо!
24 августа 2016, 18:33    Глеб   
2    586 0

Комментарии (2)

  1. Глеб 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('');
    И теперь все работает нормально
    1. Константин Обухов 29 ноября 2016, 17:16 # 0
      Вот еще костыльнее костыль вместо 37 строчки вставить

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