В ней обязательные поля и поле email которое имеет свои правила
Но когда нажимаешь кнопку отправить с незаполненными товарами, страницу переадресовывает на главную, заказ не отправляется.
Сделал ajax отправку, ошибки в углу окна есть, а над полями не показывает
в шаблоне следующий код:
[[!Shopkeeper3@cart_order_page]]
[[!AjaxForm?
&form=`shopOrderForm_modified`
&hooks=`spam,shk_fihook,email,FormItAutoResponder,redirect`
&submitVar=`order`
&emailTpl=`shopOrderReport`
&fiarTpl=`shopOrderReport`
&emailSubject=`В интернет-магазине "[[++site_name]]" сделан новый заказ`
&fiarSubject=`Вы сделали заказ в интернет-магазине "[[++site_name]]"`
&emailTo=`[[++emailsender]]`
&fiarReplyTo=`[[++emailsender]]`
&fiarToField=`email`
&redirectTo=`7`
&validate=`address:required,fullname:required,email:email:required,phone:required`
&errTpl=`<span class="error">[[+error]]</span>`
]]
<script type="text/javascript">
function SHKloadCartCallback() {
if( $('#shopOrderForm').length > 0 && SHK.data.items_total == 0 ){
window.location.reload();
}
}
</script>
код формы:
[[!shkOptions?
&get=`delivery,payments`
&post_name=`orderFormName`
&toPlaceholders=`1`
&pl_prefix=`shkopt_`
&tpl=`select_option`
]]
[[!userDiscount?toPlaceholder=`currentUserDiscount`]]
<div class="col-md-12">
<p class="error">[[!+fi.error.error_message]]</p>
<br />
<form method="post" action="[[~[[*id]]]]" id="shopOrderForm" class="contact-form cf-style-1 inner-top-xs" >
<fieldset>
<input type="text" name="nospam:blank" value="" style="display:none;" />
<input type="hidden" name="order" value="1" />
<div class="form-group field-row">
<label for="orderFormName">
Ф.И.О.*:
</label>
<input name="fullname" size="30" id="orderFormName" class="le-input form-control" type="text" value="[[!+fi.fullname:default=`[[+modx.user.id:userinfo=`fullname`]]`:ne=`0`:show]]" />
<p class="help-block">
[[!+fi.error.fullname]]
</p>
</div>
<div class="form-group field-row">
<label for="orderFormName">
Адрес*:
</label>
<input name="address" size="30" class="form-control le-input" type="text" value="[[!+fi.address:default=`[[+modx.user.id:userinfo=`address`]]`:ne=`0`:show]]" />
<p class="help-block">
[[!+fi.error.address]]
</p>
</div>
<div class="form-group row field-row">
<div class="col-md-6">
<label for="orderFormName">
E-mail*:
</label>
<input name="email" size="30" class="form-control le-input" type="text" value="[[!+fi.email:default=`[[+modx.user.id:userinfo=`email`]]`:ne=`0`:show]]" />
<p class="help-block">
[[!+fi.error.email]]
</p>
</div>
<div class="col-md-6">
<label for="orderFormName">
Телефон*:
</label>
<input name="phone" size="30" class="form-control le-input" type="text" value="[[!+fi.phone:default=`[[+modx.user.id:userinfo=`phone`]]`:ne=`0`:show]]" />
<p class="help-block">
[[!+fi.error.phone]]
</p>
</div>
</div>
<div class="form-group">
<label for="orderFormName">
Комментарий:
</label>
<textarea name="message" class="form-control le-input" rows="4" cols="30">[[!+fi.message]]</textarea>
</div>
<div class="form-group">
<input type="submit" name="submit_button" class="le-button huge" value="Отправить" />
</div>
</fieldset>
</form>
</div>
Как сделать чтобы показывал ошибки о незаполненных полях над самими полями?
Павел Романов 31.10.2017 17:21 #
А подсветку незаполненных полей — просто CSS (AF им присваивает класс error).
ox1212 03.11.2017 11:56 #
Поля подсвечиваются, а текста нет