Проблема с AjaxForm

Добрый день. Не пойму что пропустил. На странице есть 2 формы. С одной письма доходят, а с другой нет.
Вызов рабочей формы
{$_modx->runSnippet('!AjaxForm', [
	'snippet' => 'FormIt',
	'form' => 'form.callback.modal',
	'hooks' => 'spam,email,FormItSaveForm',
	'emailSubject' => 'Заказ обратного звонка с сайта ' ~ $_modx->config.site_name,
	'emailTo' => $_modx->config.store_email_support,
	'emailFrom' => $_modx->config.store_email_noreply,
	'emailTpl' => 'form.callback.email',
	'formName' => 'Заказ обратного звонка',
	'formFields' => 'callbackName,callbackPhone',
	'fieldNames' => 'callbackName==Имя,callbackPhone == Телефон',
	'validate' => 'callbackName:required,callbackPhone:required',
	'validationErrorMessage' => 'В форме содержатся ошибки!',
	'successMessage' => 'Сообщение успешно отправлено',
	'frontend_css' => '',
])}
Чанк формы
<div class="modal fade" id="formCallback" tabindex="-1" role="dialog" aria-labelledby="formCallbackLabel">
  <div class="modal-dialog" role="document">
    <form method="post" class="af">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
        <h3 id="formCallbackLabel" class="center-aligned">Заказать звонок</h3>
      </div>
      <div class="modal-body">     
        <div class="alert alert-success hidden">Письмо успешно отправлено!</div>
        <div class="alert alert-danger hidden">В форме содержаться ошибки!</div>
        <div class="form-group">
          <label class="visible-xs">Имя</label>
          <input type="text" name="callbackName" value="[[+fi.callbackName]]" placeholder="Имя" class="form-control input-lg sharp">
          <span class="help-block error_callbackName">[[+fi.error.callbackName]]</span>
        </div>
        <div class="form-group">
          <label class="visible-xs">Телефон</label>
          <input type="tel" name="callbackPhone" value="[[+fi.callbackPhone]]" placeholder="Телефон" class="form-control input-lg phone sharp">
          <span class="help-block error_callbackPhone">[[+fi.error.callbackPhone]]</span>
        </div>
      </div> 
      <div class="modal-footer">
        <button type="submit" name="form1" class="btn orange">Отправить</button>
      </div>
    </div>
    </form>
  </div>
</div>

Вызов не рабочей формы
{$_modx->runSnippet('!AjaxForm', [
	'snippet' => 'FormIt',
	'form' => 'form.contacts',
	'hooks' => 'spam,email',
	'emailSubject' => 'Письмо с сайта ' ~ $_modx->config.site_name,
	'emailTo' => $_modx->config.store_email_support,
	'emailFrom' =>  $_modx->config.store_email_noreply,
	'emailTpl' => 'form.contacts.email',
	'formName' => 'Форма обратной связи',
	'formFields' => 'contactsName,contactsEmail,contactsPhone,contactsMessage',
	'fieldNames' => 'contactsName==Имя отправителя,contactsEmail==Почта,contactsPhone == Телефон,contactsMessage==Сообщение',
	'validate' => 'contactsName:required,contactsEmail:required,contactsPhone:required,contactsMessage:required:stripTags',
	'validationErrorMessage' => 'В форме содержатся ошибки!',
	'successMessage' => 'Сообщение успешно отправлено',
	'frontend_css' => '',
])}
Чанк не рабочей формы
<div id="cForm">
  <form action="[[~[[*id]]]]" method="post" class="ajax_form">
    <input type="hidden" name="nospam" value="">

    <div class="form-group">
      <label for="contactsName">Ваше имя</label>
      <input type="text" name="contactsName" value="[[+fi.contactsName]]" placeholder="Ваше имя" class="form-control input-lg sharp" id="contactsName">
        
      <span class="error_contactsName">[[+fi.error.contactsName]]</span>
    </div>

    <div class="form-group">
      <label for="contactsPhone">Телефон</label>
      <input type="tel" name="contactsPhone" value="[[+fi.contactsPhone]]" placeholder="Телефон" class="phone form-control input-lg sharp" id="contactsPhone">
      <span class="error_contactsPhone">[[+fi.error.contactsPhone]]</span>
    </div>

    <div class="form-group">
       <label for="contactsEmail">Email</label>
      <input type="text" name="contactsEmail" value="[[+fi.contactsEmail]]" placeholder="Email" class="email form-control input-lg sharp" id="contactsEmail">
      <span class="error_contactsEmail">[[+fi.error.contactsEmail]]</span>
    </div>

  
    <button type="submit" class="btn orange mt30" name="form2">Заказать расчет</button>

    [[+fi.success:is=`1`:then=`
      <div class="alert alert-success">[[+fi.successMessage]]</div>
    `]]
    [[+fi.validation_error:is=`1`:then=`
      <div class="alert alert-danger">[[+fi.validation_error_message]]</div>
    `]]
  </form>
</div>
Alex
18 сентября 2018, 09:43
modx.pro
1 693
0

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

Баха Волков
18 сентября 2018, 09:44
+1
Попробуйте поменять button на input, вроде как сталкивался с данной проблемой и она решилась данным путём
    Alex
    18 сентября 2018, 09:48
    0
    Пробовал, не получилось
    Баха Волков
    18 сентября 2018, 10:12
    +1
    Укажите разные submitVar и выведите их в атрибутах name этих input[type=submit]
      Alex
      18 сентября 2018, 10:22
      0
      Нет, все по прежнему. Письмо приходит только 1
        Баха Волков
        18 сентября 2018, 12:28
        0
        Странно, у меня на многих сайтах на одной странице без проблем запускаются и работают несколько форм. До рабочего компьютера доеду и гляну, вдруг что-то упускаем
          Alex
          18 сентября 2018, 13:01
          0
          благодарю
      Ilya Gureshidze
      18 сентября 2018, 12:54
      +1
      У вас во второй форме (не рабочей) нет поля с именем contactsMessage, а в валидации есть и помечено required. Потому и не шлется
        Alex
        18 сентября 2018, 13:02
        0
        Нет, поле убрал это — результат тот же. Сообщение об отправке появляется, но письма нет
        Ilya Gureshidze
        18 сентября 2018, 13:07
        0
        Ошибки в журнале, консоли или на сервере в логах есть?
          Alex
          18 сентября 2018, 13:12
          0
          Ничего. На сервере только
          Tue Sep 18 09:58:42 2018] [error] [client 194.58.98.236] client denied by server configuration: /var/www/merman/data/www/merman.su/core/docs/changelog.txt
          Ilya Gureshidze
          18 сентября 2018, 13:12
          +1
          Предлагаю привести вторую форму к виду первой: убрать action, поле со спамом и посмотреть на результат. Это чисто эксперимент. Где-то явно д.б. ошибка в логах или консоли. Сообщения стандартные ajaxformовские? может, не все видите
            Alex
            18 сентября 2018, 13:13
            0
            Пробовал ставить другую форму с рабочего примера. Такой же результат.
            Да и эта форма работала, просто находилась на другой странице
            Ilya Gureshidze
            18 сентября 2018, 13:50
            0
            А есть навешанная логика на формы и их элементы? на сабмит?
              Баха Волков
              18 сентября 2018, 13:52
              1
              +1
              Вы точно сделали как я сказал выше?

              {'!AjaxForm' | snippet : [
              ...
              'submitVar' => 'main'
              ]}
              
              // а в чанке формы
              
              <input type="submit" name="{$submitVar}"/>
                Alex
                18 сентября 2018, 13:57
                0
                благодарю, работает.
                До этого в name вписывал form1 и соответственно параметр 'submitVar' => 'form1'.
                Попробовал как в вашем комменте —
                name="{$submitVar}"
                работает
              Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
              16