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

Form with Vanilla

With the framework Vanilla as with Fomantic UI the invalid class must be applied to the parent element; use the data-custom="*" selectors. Note that framework rules require validated inputs to be wrapped in 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>

To set it up:

  1. Add the data-custom="*" to parent elements and set system setting fetchit.frontend.custom.invalid.class to is-error.
  2. Add the data-error="*" to elements that will display error text.
  3. For FormIt compatibility add placeholders for values and errors.

Important

Markup validators complain about an empty action, so set the page URL there.

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>
  <button type="submit" class="p-button--positive">Submit</button>
  <button type="reset" class="p-button">Reset</button>
</form>