Проверка формы MODX только проверяет "требуется"
У меня есть контактная форма на моем сайте. Я использую formit для его проверки FormIT. Я хочу, чтобы адрес электронной почты не превышал 40 символов, был необходим и был правильным адресом электронной почты. Message
Поле также обязательно для заполнения и имеет максимальную длину.
Валидатор не работает правильно:
- Когда обязательные поля пусты, отображается сообщение об ошибке и не разрешается отправлять форму (эта ситуация абсолютно корректна)
Когда в
email
любой текст (действительный или нет), форма отправляется, но перенаправление на страницу успеха не работает (поэтому это происходит также, когда мы вводим больше максимальной длины)[[!FormIt? &hooks=`spam,email,redirect,FormItAutoResponder` &emailTpl=`emailTplContact` &emailSubject=`Message from site.com` &emailTo=`myemail@gmail.com` &validate=`email:email:required:maxLength=^40^, message:required:maxLength=^150^` &redirectTo=`11` &fiarTpl=`emailAutoRespond` &fiarSubject=`Your message is sent` &fiarFromName=`My Site` &fiarFrom=`myemail@gmail.com` &fiarToField=`email` &fiarReplyTo=`email` ]] <form id="contact-form" method="post" action="[[~[[*id]]]]" enctype="application/x-www-form-urlencoded" role="form" data-toggle="validator" name="order"> <input type="text" id="name" name="name" type="name" placeholder="Name" value="[[!+fx.name]]" size=25> <input type="text" required="required" type="email" id="email" name="email" placeholder="Email" value="[[!+fx.email]]"> [[!+fx.error.email]] <textarea required="required" placeholder="Message" id="message" name="message">[[!+fx.message]]</textarea> <button name="send">Send</button> </form> </div>
1 ответ
У вас есть атрибут type дважды во вводе имени и вводе электронной почты, так что это может быть проблемой.
<input type="text" id="name" name="name" type="name">
<input type="text" required="required" type="email">
Удалить type="name" и type="email" - (оставить type="text")
Кроме того - я когда-либо использовал префикс fi только для заполнителей Formit; ты точно знаешь, что fx будет работать? Вы установили это где-то еще? Вы говорите, что видите сообщение об ошибке, поэтому я предполагаю, что заполнитель ошибки должен работать...
Обязательно добавлю placeholderPrefix
на ваш вызов FormIt:
[[!FormIt?
&placeholderPrefix=`fx`
&hooks=`spam,email,redirect,FormItAutoResponder`
&emailTpl=`emailTplContact`
&emailSubject=`Message from site.com`
&emailTo=`myemail@gmail.com`
&validate=`email:email:required:maxLength=^40^,
message:required:maxLength=^150^`
&redirectTo=`11`
&fiarTpl=`emailAutoRespond`
&fiarSubject=`Your message is sent`
&fiarFromName=`My Site`
&fiarFrom=`myemail@gmail.com`
&fiarToField=`email`
&fiarReplyTo=`email`
]]