Skip to content
  1. Extras
  2. FetchIt
  3. Form markup
  4. Vanilla form

Vanilla form

In Vanilla Framework, like Fomantic UI, the error class goes on the field wrapper. Use [data-custom] for that. Vanilla expects inputs inside an element with class p-form-validation:

html
<form>
  <div class="p-form-validation">
    <label>Name</label>
    <input class="p-form-validation__input" type="text" name="name" value="">
    <p class="p-form-validation__message"></p>
  </div>
  <div class="p-form-validation" data-custom="email">
    <label>Email</label>
    <input class="p-form-validation__input" type="email" name="email" value="">
    <p class="p-form-validation__message"></p>
  </div>
  <button type="submit" class="p-button--positive">Submit</button>
  <button type="reset" class="p-button">Reset</button>
</form>

Steps:

  1. Add data-custom on field wrappers and set fetchit.frontend.custom.invalid.class to is-error.
  2. Add data-error for field error text.
  3. Add [data-success] and [data-validation-error] for AJAX form messages.
  4. Add FormIt placeholders.

Информация

Markup validators flag an empty action. Set it to the page URL.

modx
<form> 
<form action="[[~[[*id]]]]" method="post"> 
  <div class="p-form-validation"> 
  <div class="p-form-validation" data-custom="name"> 
    <label>Name</label>
    <input class="p-form-validation__input" type="text" name="name" value=""> 
    <input class="p-form-validation__input" type="text" name="name" value="[[+fi.name]]"> 
    <p class="p-form-validation__message"></p> 
    <p class="p-form-validation__message" data-error="name">[[+fi.error.name]]</p> 
  </div>
  <div class="p-form-validation"> 
  <div class="p-form-validation" data-custom="email"> 
    <label>Email</label>
    <input class="p-form-validation__input" type="email" name="email" value=""> 
    <input class="p-form-validation__input" type="email" name="email" value="[[+fi.email]]"> 
    <p class="p-form-validation__message"></p> 
    <p class="p-form-validation__message" data-error="email">[[+fi.error.email]]</p> 
  </div>
  <div role="alert" data-success style="display: none;"></div> 
  <div role="alert" data-validation-error style="display: none;"></div> 
  <button type="submit" class="p-button--positive">Submit</button>
  <button type="reset" class="p-button">Reset</button>
</form>
fenom
<form> 
<form action="{$_modx->resource.id | url}" method="post"> 
  <div class="p-form-validation"> 
  <div class="p-form-validation" data-custom="name"> 
    <label>Name</label>
    <input class="p-form-validation__input" type="text" name="name" value=""> 
    <input class="p-form-validation__input" type="text" name="name" value="{$_modx->getPlaceholder('fi.name')}"> 
    <p class="p-form-validation__message"></p> 
    <p class="p-form-validation__message" data-error="name">{$_modx->getPlaceholder('fi.error.name')}</p> 
  </div>
  <div class="p-form-validation"> 
  <div class="p-form-validation" data-custom="email"> 
    <label>Email</label>
    <input class="p-form-validation__input" type="email" name="email" value=""> 
    <input class="p-form-validation__input" type="email" name="email" value="{$_modx->getPlaceholder('fi.email')}"> 
    <p class="p-form-validation__message"></p> 
    <p class="p-form-validation__message" data-error="email">{$_modx->getPlaceholder('fi.error.email')}</p> 
  </div>
  <div role="alert" data-success style="display: none;"></div> 
  <div role="alert" data-validation-error style="display: none;"></div> 
  <button type="submit" class="p-button--positive">Submit</button>
  <button type="reset" class="p-button">Reset</button>
</form>