We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 38483
    • 29 Posts
    Очень неприятная тенеднция. FormIt, если ввели неправильное значение в поле (любое, которое проходит проверку, например reCaptcha) выводит ошибку, но при этом все поля формы очищаются... Очень неприятно, когда это немаленькая анкета и Вы неправильно ввели буквы с капчи. Вряд-ли у кого-то хватит энтузиазма заполнять заново. Вот код тестовой формы:

    [[!FormIt? &hooks=`email` &emailTpl=`FormItsentEmailTpl` &validate=`contact_name:required:minLength=`2`, contact_email:email:required, contact_message:required` &hooks=`recaptcha,spam,email`
    &emailSubject=`DaEx. Заявка на расчет материалов` &emailTo=`[email protected]`
    
    ]]
    <form id="contactForm" method="post" action="[[~[[*id]]]]" enctype="multipart/form-data">
      <div>
        <label for="contact_name">имя </label><em>(обязательное поле, не менее 2 символов)</em>
        <br />
        <input id="contact_name" name="contact_name" size="30" minlength="2" value="" />
        <label for="contact_name"><span class="error">[[!+fi.error.contact_name]]</span></label>
        <br />
        <br />
      </div>
      <div>
        <label for="contact_email">e-mail: </label><em>(обязательное поле)</em>
        <br />
        <input id="contact_email" name="contact_email" size="30"  value="" />
        <label for="contact_email"><span class="error">[[!+fi.error.contact_email]]</span></label>
        <br />
        <br />
      </div>
      <div>
        <label for="contact_phone">телефон </label><em>(обязательное поле, пример (812) 1234567)</em><br />
        <label for="contact_code">код: (</label><input id="contact_code" name="contact_code" size="4" value="" maxlength="4" /><label for="contact_code">)</label>
        <label for="contact_phone">номер: </label><input id="contact_phone" name="contact_phone" size="" value="" maxlength="10" />
        <br />
      </div>
      <div>
        <br /><label for="contact_message">Описание задания для расчета </label><em>(обязательное поле)</em>
        <br />
        <textarea id="contact_message" name="contact_message" style="resize: none" cols="70" rows="7"></textarea>
        <br /><label for="contact_message"><span class="error">[[!+fi.error.contact_message]]</span></label>
        <br />
      </div>
      <div>
        <label for="contact_attachment">Приложите файлы с чертежами</label><em>(необязательно)</em><br />
        <input type="file" multiple name="contact_attachment" value="[[!+fi.contact_attachment]]" />
        <br />
        <br />
      </div>
      [[+formit.recaptcha_html]][[!+fi.error.recaptcha]]
      <div>
        <input name="submit" type="submit" value="Отправить"/>
      </div>
    </form>
      • 31246 ☆ A M B ☆
      • 428 Posts
      name="contact_name" - huh? вы понимаете. что такой таблицы contact_name в таблице юзера нету, это у вас выходят как доп поля всё, если у вас всё будет как доп поля, тогда нужно добавить параметр useExtended.
      В Вашем случае, лучше использовать свой префикс к форме, к примеру
      &placeholderPrefix=`contact.`
      тогда в форме будет похожее на это
      <label for="username">[[%register.username? &namespace=`login` &topic=`register`]]
                  <span class="error">[[!+contact.error.username]]</span>
              </label>
              <input type="text" name="username" id="username" value="[[!+contact.username]]" />

      более подробно посмотрите здесь http://rtfm.modx.com/display/ADDON/Register.Example+Form+1
        Valentin Rasulov - Industrial design (Hobbies - Web Development)
        Development not standard projects on CMF MODx Revolution.
        Small sample of extensions
        • 38483
        • 29 Posts
        Quote from: valikras at Feb 21, 2012, 02:43 AM
        &placeholderPrefix=`contact.`
        Ой спасибо, что намекнули. Начал читать доки, а оказывается FormIt имеет по умолчанию плейсхолдер `fi`. Все получилось.

        Quote from: valikras at Feb 21, 2012, 02:43 AM

        http://rtfm.modx.com/display/ADDON/Register.Example+Form+1
        За это отдельное спасибо, пригодится явно.

        Может знаете, как провернуть тоже самое с
        <input type="radio"
        [ed. note: alexandr rs last edited this post 14 years, 8 months ago.]
          • 31246 ☆ A M B ☆
          • 428 Posts
          принцип везде одинаковый, как для примера, посмотрите здесь http://rtfm.modx.com/display/ADDON/FormIt.Handling+Selects%2C+Checkboxes+and+Radios
            Valentin Rasulov - Industrial design (Hobbies - Web Development)
            Development not standard projects on CMF MODx Revolution.
            Small sample of extensions
            • 38483
            • 29 Posts
            Quote from: valikras at Feb 22, 2012, 02:33 AM
            принцип везде одинаковый, как для примера, посмотрите здесь http://rtfm.modx.com/display/ADDON/FormIt.Handling+Selects%2C+Checkboxes+and+Radios
            Я вообще посмотрел примеры FormIt, но там есть всего один пример выбора "одного варианта из списка" и он вот такой:
                    <select name="numbers" value="[[!+fi.numbers]]">
                        <option value="">Select an option...</option>
                        <option value="one" [[!+fi.numbers:FormItIsSelected=`one`]]>One</option>
                        <option value="two" [[!+fi.numbers:FormItIsSelected=`two`]]>Two</option>
                        <option value="three" [[!+fi.numbers:FormItIsSelected=`three`]]>Three</option>
                    </select>

            В общем-то, достаточно хорошее и простое решение... За одним исключением: параметр Value никак не совместим с тегом option. При xhtml 1.0 transitional, по крайней мере.