AjaxForm class error
Обнаружил при использовании в форме выпадающего списка select следующий баг.
Когда у select есть класс error, который добавляется при ошибке, то при отправлении формы все option (варианты выбора) удаляются. Это происходит тут:
У себя я сделал следующие изменения:
1. Заменил
2. Заменил
3. Заменил в двух местах
Если тема Bootstrap 3 не используется, можно просто добавлять класс has-error прямо к элементу формы:
Вместо пункта 2 заменить
Когда у select есть класс error, который добавляется при ошибке, то при отправлении формы все option (варианты выбора) удаляются. Это происходит тут:
form.find('.error').html('');А ведь нужно очищять html только у тега, в котором текст ошибки.У себя я сделал следующие изменения:
1. Заменил
form.find('.error_' + key).html(value).addClass('error');наform.find('.error_' + key).html(value);потому что класс error у тегов с тексами ошибок нет необходимости удалять2. Заменил
form.find('[name="' + key + '"]').addClass('error');наform.find('[name="' + key + '"]').parent().addClass('has-error');именно этот класс отвечает за выделение красным в Bootstrap 3, у меня каждый элемент формы выводится следующим образом:<div class="form-group">
<input type="text" name="example" value="[[+fi.example]]" class="form-control"/>
<span class="error error_example">[[+fi.error.example]]</span>
</div>3. Заменил в двух местах
form.find('.error').removeClass('error');наform.find('.has-error').removeClass('has-error');именно этот класс теперь удаляетсяЕсли тема Bootstrap 3 не используется, можно просто добавлять класс has-error прямо к элементу формы:
Вместо пункта 2 заменить
form.find('[name="' + key + '"]').addClass('error');наform.find('[name="' + key + '"]').addClass('has-error');и добавить такие же стили для has-error как и у error.
Техническая поддержка MODX
Сайт лежит, тормозит или остался без разработчика?
Переезд с MODX 2 на 3, PHP 7 на 8, скорость и безопасность. Поддержка со сроками и ответственностью, а не совет в чате.
Подробнее
Реклама
Комментарии: 2
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Подскажите пожалуйста если в курсе, где добавлять значения для разных ошибок при вводе полей типа [[+fi.error.example]] на вашем примере:
Хотелось бы чтоб для каждого поля выводилась своя ошибка а не одна на все.
Но не пойму где прописывать их.
Буду очень признателен ))