Abide

JavaScript

Abide 是一个表单验证库,它使用自定义验证器扩展了 HTML5 验证 API。

Abide 演示

这些输入类型创建一个文本字段:textdatedatetimedatetime-localemailmonthnumberpasswordsearchteltimeurlweek。请注意使用 novalidate 属性来禁用任何可能与 Abide 冲突的浏览器验证。

观看视频中的这部分

edit on codepen button
<form data-abide novalidate>
  <div data-abide-error class="alert callout" style="display: none;">
    <p><i class="fi-alert"></i> There are some errors in your form.</p>
  </div>
  <div class="grid-container">
    <div class="grid-x grid-margin-x">
      <div class="cell small-12">
        <label>Number Required
          <input type="text" placeholder="1234" aria-describedby="example1Hint1" aria-errormessage="example1Error1" required pattern="number">
          <span class="form-error">
            Yo, you had better fill this out, it's required.
          </span>
        </label>
      <p class="help-text" id="example1Hint1">Here's how you use this input field!</p>
      </div>
      <div class="cell small-12">
        <label>Password Required
          <input type="password" id="password" placeholder="yeti4preZ" aria-describedby="example1Hint2" aria-errormessage="example1Error2" required >
          <span class="form-error">
            I'm required!
          </span>
        </label>
        <p class="help-text" id="example1Hint2">Enter a password please.</p>
      </div>
      <div class="cell small-12">
        <label>Re-enter Password
          <input type="password" placeholder="yeti4preZ" aria-describedby="example1Hint3" aria-errormessage="example1Error3" required pattern="alpha_numeric" data-equalto="password">
          <span class="form-error">
            Hey, passwords are supposed to match!
          </span>
        </label>
        <p class="help-text" id="example1Hint3">This field is using the `data-equalto="password"` attribute, causing it to match the password field above.</p>
      </div>
    </div>
  </div>
  <div class="grid-container">
    <div class="grid-x grid-margin-x">
      <div class="cell large-6">
        <label>URL Pattern, not required, but throws error if it doesn't match the Regular Expression for a valid URL.
          <input type="text" placeholder="https://foundation.npmjs.net.cn" pattern="url">
        </label>
      </div>
      <div class="cell large-6">
        <label>Website Pattern, not required, but throws error if it doesn't match the Regular Expression for a valid URL or a Domain.
          <input type="text" placeholder="https://foundation.npmjs.net.cn or get.foundation" pattern="website">
        </label>
      </div>
    </div>
  </div>
  <div class="grid-container">
    <div class="grid-x grid-margin-x">
      <div class="cell large-6">
        <label>European Cars, Choose One, it can't be the blank option.
          <select id="select" required>
            <option value=""></option>
            <option value="volvo">Volvo</option>
            <option value="saab">Saab</option>
            <option value="mercedes">Mercedes</option>
            <option value="audi">Audi</option>
          </select>
        </label>
      </div>
      <fieldset class="cell large-6">
        <legend>Check these out</legend>
        <input id="checkbox1" type="checkbox"><label for="checkbox1">Checkbox 1</label>
        <input id="checkbox2" type="checkbox" required><label for="checkbox2">Checkbox 2</label>
        <input id="checkbox3" type="checkbox"><label for="checkbox3">Checkbox 3</label>
      </fieldset>
    </div>
  </div>
  <div class="grid-container">
    <div class="grid-x grid-margin-x">
      <fieldset class="cell large-6">
        <legend>Choose Your Favorite - not required, you can leave this one blank.</legend>
        <input type="radio" name="pockets" value="Red" id="pocketsRed"><label for="pocketsRed">Red</label>
        <input type="radio" name="pockets" value="Blue" id="pocketsBlue"><label for="pocketsBlue">Blue</label>
        <input type="radio" name="pockets" value="Yellow" id="pocketsYellow"><label for="pocketsYellow">Yellow</label>
      </fieldset>
      <fieldset class="cell large-6">
        <legend>Choose Your Favorite, and this is required, so you have to pick one.</legend>
        <input type="radio" name="pokemon" value="Red" id="pokemonRed"><label for="pokemonRed">Red</label>
        <input type="radio" name="pokemon" value="Blue" id="pokemonBlue" required><label for="pokemonBlue">Blue</label>
        <input type="radio" name="pokemon" value="Yellow" id="pokemonYellow"><label for="pokemonYellow">Yellow</label>
      </fieldset>
    </div>
  </div>
  <div class="grid-container">
    <div class="grid-x grid-margin-x">
      <fieldset class="cell large-6">
        <button class="button" type="submit" value="Submit">Submit</button>
      </fieldset>
      <fieldset class="cell large-6">
        <button class="button" type="reset" value="Reset">Reset</button>
      </fieldset>
    </div>
  </div>
</form>

以下是您如何使用此输入字段!

请输入密码。

此字段使用 data-equalto="password"` 属性,使其与上面的密码字段匹配。

查看这些
选择您最喜欢的 - 不是必需的,您可以将此选项留空。
选择您最喜欢的,这是必需的,因此您必须选择一个。

 

您的表单中有一些错误。


表单错误

Abide 会根据其类(默认情况下为 .form-error,请参阅 formErrorSelector 选项)自动检测输入的表单错误,当它们是输入的兄弟节点或位于同一个父节点内时。

当表单错误无法放置在其字段旁边时,例如在输入组中,可以使用 [data-form-error-for] 属性声明关系。

<form data-abide novalidate>
  <div data-abide-error class="sr-only">
    There are some errors in your form.
  </div>

  <div>
    Amount
    <div class="input-group">
      <span class="input-group-label">$</span>
      <input class="input-group-field" id="example3Input" type="number" required pattern="number"/>
    </div>
    <label class="form-error" data-form-error-for="example3Input">Amount is required.</label>
  </div>

  <button class="button" type="submit" value="Submit">Submit</button>
</form>
您的表单中有一些错误。
金额
$

您可以使用 [data-form-error-on] 属性指定特定于验证器的错误消息,例如

  • data-form-error-on="required"
  • data-form-error-on="pattern"
  • data-form-error-on="equalTo"
  • data-form-error-on="your_custom_validator"
<form data-abide novalidate>
  <label>Email Required
    <input type="text" required pattern="email">
    <span class="form-error" data-form-error-on="required">
      Yo, you had better fill this out, it's required.
    </span>
    <span class="form-error" data-form-error-on="pattern">
      Invalid Email
    </span>
  </label>
  <button class="button" type="submit" value="Submit">Submit</button>
</form>

初始状态

<form data-abide>
  <!-- Add "display: none" right away -->
  <div data-abide-error class="alert callout" aria-live="assertive" style="display: none;">
    <p><i class="fi-alert"></i> There are some errors in your form.</p>
  </div>
  <label>
    Name
    <input id="example4Input" aria-describedby="example4Error" type="text" required>
    <span id="example4Error" class="form-error">This field is required.</span>
  </label>
</form>

错误状态

<form data-abide>
  <!-- Add role="alert" -->
  <!-- Add "display: block" -->
  <div data-abide-error class="alert callout" aria-live="assertive" role="alert" style="display: block;">
    <p><i class="fi-alert"></i> There are some errors in your form.</p>
  </div>
  <!-- Add "is-invalid-label" -->
  <label class="is-invalid-label">
    Name
    <!-- Add "is-invalid-input" -->
    <!-- Add aria-invalid="true" -->
    <input id="example4Input" aria-describedby="example4Error" type="text" required
      class="is-invalid-input" aria-invalid="true">
    <!-- Add "is-visible" -->
    <span id="example4Error" class="form-error is-visible">This field is required.</span>
  </label>
</form>

忽略的输入

<form data-abide>
  <div class="grid-x grid-margin-x">
    <div class="cell small-12">
      <label>Nothing Required!
        <input type="text" placeholder="Use me, or don't" aria-describedby="example5Hint1" data-abide-ignore>
      </label>
      <p class="help-text" id="example5Hint1">This input is ignored by Abide using `data-abide-ignore`</p>
    </div>
    <div class="cell small-12">
      <label>Disabled!
        <input type="text" placeholder="Disabled input" aria-describedby="example5Hint2" disabled>
      </label>
      <p class="help-text" id="example5Hint2">This input is ignored by Abide using `disabled`</p>
    </div>
    <div class="cell small-12">
      <label>Hidden!
        <input type="hidden" placeholder="Hidden input" aria-describedby="example5Hint3" >
      </label>
      <p class="help-text" id="example5Hint3">This input is ignored by Abide using `type="hidden"`</p>
    </div>
  </div>
  <div class="grid-container">
    <div class="grid-x grid-margin-x">
      <fieldset class="cell small-12">
        <button class="button" type="submit" value="Submit">Submit</button>
      </fieldset>
      <fieldset class="cell small-12">
        <button class="button" type="reset" value="Reset">Reset</button>
      </fieldset>
    </div>
  </div>
</form>

必填单选按钮和复选框

如果将 required 添加到单选按钮或复选框输入,则整个组将被视为必填。这意味着必须选中至少一个输入。复选框输入支持额外的属性 data-min-required,您可以使用它指定组中必须选中的复选框数量(默认为 1)。

<form data-abide novalidate>
  <div class="grid-x grid-margin-x align-bottom">
    <div class="cell medium-6 large-4">
      <fieldset>
        <legend>Radio Group</legend>
        <input type="radio" name="exampleRadio" id="exampleRadioA" value="A">
        <label for="exampleRadioA">A</label>
        <input required type="radio" name="exampleRadio" id="exampleRadioB" value="B">
        <label for="exampleRadioB">B</label>
        <input type="radio" name="exampleRadio" id="exampleRadioC" value="C">
        <label for="exampleRadioC">C</label>
      </fieldset>
    </div>
    <div class="cell medium-6 large-4">
      <fieldset>
        <legend>Checkbox Group</legend>
        <input data-min-required="2" type="checkbox" name="exampleCheckbox" id="exampleCheckboxA" value="A">
        <label for="exampleCheckboxA">A</label>
        <input required type="checkbox" name="exampleCheckbox" id="exampleCheckboxB" value="B">
        <label for="exampleCheckboxB">B</label>
        <input type="checkbox" name="exampleCheckbox" id="exampleCheckboxC" value="C">
        <label for="exampleCheckboxC">C</label>
      </fieldset>
    </div>
    <div class="cell large-4">
      <button class="button" type="submit">Submit</button>
    </div>
  </div>
</form>
单选按钮组
复选框组

事件监听器

在 Foundation 初始化后设置事件监听器(特别是对于 formvalid/forminvalid)。更容易通过文档选择器进行链接。

  • valid.zf.abide 和 invalid.zf.abide 是字段级事件,在 validateInput 函数中触发
    • ev.target 是 DOM 字段元素,
    • elem 是字段元素的 jQuery 选择器
  • formvalid.zf.abide 和 forminvalid.zf.abide 是表单事件,在 validateForm 函数中触发
    • ev.target 是 DOM 表单元素,
    • frm 是表单元素的 jQuery 选择器
$(document)
  // field element is invalid
  .on("invalid.zf.abide", function(ev,elem) {
    console.log("Field id "+ev.target.id+" is invalid");
  })
  // field element is valid
  .on("valid.zf.abide", function(ev,elem) {
    console.log("Field name "+elem.attr('name')+" is valid");
  })
  // form validation failed
  .on("forminvalid.zf.abide", function(ev,frm) {
    console.log("Form id "+ev.target.id+" is invalid");
  })
  // form validation passed, form will submit if submit event not returned false
  .on("formvalid.zf.abide", function(ev,frm) {
    console.log("Form id "+frm.attr('id')+" is valid");
    // ajax post form
  })
  // to prevent form from submitting upon successful validation
  .on("submit", function(ev) {
    ev.preventDefault();
    console.log("Submit for form id "+ev.target.id+" intercepted");
  });
// You can bind field or form event selectively
$("#foo").on("invalid.zf.abide", function(ev,el) {
  alert("Input field foo is invalid");
});
$("#bar").on("formvalid.zf.abide", function(ev,frm) {
  alert("Form is valid, finally!");
  // do something perhaps
});

内置模式和验证器

以下模式和验证器已经内置

alphaalpha_numericcardcolor cvvdatedateISOdatetimeday_month_yeardomainemailintegermonth_day_yearnumbertimeurl

除了这些标准模式之外,我们还有一个 website 模式,它基本上是 domainurl 模式的组合,我们建议您使用此 website 模式来验证网站。

它们由正则表达式定义,如下所示。请注意,与文本相关的模式(例如 alphaalpha_numeric)不考虑其他语言的特殊字符。您需要自己将这些特殊字符添加到正则表达式中。例如,对于德语,您需要添加

alpha : /^[a-zäöüßA-ZÄÖÜ]+$/,
alpha_numeric : /^[a-zäöüßA-ZÄÖÜ0-9]+$/,

然后,您需要自定义内置模式,如下一节所述。否则,如果在使用 pattern="alpha"pattern="alpha_numeric" 验证的文本字段中输入了特殊字符,则 Abide 将产生错误。

以下是内置模式的定义

alpha : /^[a-zA-Z]+$/,
alpha_numeric : /^[a-zA-Z0-9]+$/,
integer : /^[-+]?\d+$/,
number : /^[-+]?\d*(?:[\.\,]\d+)?$/,

// amex, visa, diners
card : /^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$/,
cvv : /^([0-9]){3,4}$/,

// https://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#valid-e-mail-address
email : /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+$/,

// From CommonRegexJS (@talyssonoc)
// https://github.com/talyssonoc/CommonRegexJS/blob/e2901b9f57222bc14069dc8f0598d5f412555411/lib/commonregex.js#L76
// For more restrictive URL Regexs, see https://mathiasbynens.be/demo/url-regex.
url: /^((?:(https?|ftps?|file|ssh|sftp):\/\/|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\((?:[^\s()<>]+|(?:\([^\s()<>]+\)))*\))+(?:\((?:[^\s()<>]+|(?:\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:\'".,<>?\xab\xbb\u201c\u201d\u2018\u2019]))$/,

// abc.de
domain : /^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,8}$/,

datetime : /^([0-2][0-9]{3})\-([0-1][0-9])\-([0-3][0-9])T([0-5][0-9])\:([0-5][0-9])\:([0-5][0-9])(Z|([\-\+]([0-1][0-9])\:00))$/,
// YYYY-MM-DD
date : /(?:19|20)[0-9]{2}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-9])|(?:(?!02)(?:0[1-9]|1[0-2])-(?:30))|(?:(?:0[13578]|1[02])-31))$/,
// HH:MM:SS
time : /^(0[0-9]|1[0-9]|2[0-3])(:[0-5][0-9]){2}$/,
dateISO : /^\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}$/,
// MM/DD/YYYY
month_day_year : /^(0[1-9]|1[012])[- \/.](0[1-9]|[12][0-9]|3[01])[- \/.]\d{4}$/,
// DD/MM/YYYY
day_month_year : /^(0[1-9]|[12][0-9]|3[01])[- \/.](0[1-9]|1[012])[- \/.]\d{4}$/,

// #FFF or #FFFFFF
color : /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/,

// Domain || URL
website: {
  test: (text) => {
    return Abide.defaults.patterns['domain'].test(text) || Abide.defaults.patterns['url'].test(text);
  }
}

添加自定义模式和验证器

  • 在 Foundation 初始化之前覆盖内置模式和验证器
  • 在 Foundation 初始化之前或之后添加新的模式和验证器
function myCustomValidator(
  $el,      /* jQuery element to validate */
  required, /* is the element required according to the `[required]` attribute */
  parent    /* parent of the jQuery element `$el` */
) {
  if (!required) return true;
  var from = $('#'+$el.attr('data-greater-than')).val(),
      to = $el.val();
  return (parseInt(to) > parseInt(from));
};

// Set default options
Foundation.Abide.defaults.patterns['dashes_only'] = /^[0-9-]*$/;
Foundation.Abide.defaults.validators['greater_than'] = myCustomValidator;

// Initialize Foundation
$(document).foundation();
<input id="phone" type="text" pattern="dashes_only" required >
<input id="min" type="number" required >
<input id="max" type="number" data-validator="greater_than" data-greater-than="min" required>

jQuery 冲突

创建类型 submit 按钮时,请确保避免使用 name="submit",否则您的表单将无法提交。这是由于 jQuery 限制(请参阅附加说明)。

辅助功能

默认情况下,Abide 会向您的表单元素添加一些辅助功能属性。强烈建议您保持此选项处于活动状态,因为它可以提高残障人士对表单的可用性。 详细了解 Foundation 中的辅助功能

但是,如果您认为 Abide 添加的属性不正确,可以通过将 a11yAttributes(或 [data-a11y-attributes])设置为 false 来禁用它。


Sass 参考

变量

可以使用项目 设置文件 中的以下 Sass 变量来自定义此组件的默认样式。

名称类型默认值说明
$abide-inputs 布尔值 true

设置是否应向输入添加错误样式。

$abide-labels 布尔值 true

设置是否应向标签添加错误样式。

$input-background-invalid 颜色 get-color(alert)

用于无效文本输入的背景颜色。

$form-label-color-invalid 颜色 get-color(alert)

用于无效输入标签的颜色。

$input-error-color 颜色 get-color(alert)

表单错误文本的默认字体颜色。

$input-error-font-size 数字 rem-calc(12)

表单错误文本的默认字体大小。

$input-error-font-weight 关键字 $global-weight-bold

表单错误文本的默认字体粗细。


混合宏

我们使用这些混合宏来构建此组件的最终 CSS 输出。您可以自己使用混合宏来构建我们组件的类结构。

form-input-error

@include form-input-error($background, $background-lighten);

将输入字段的背景和边框的样式设置为错误状态。

参数类型默认值说明
$background 颜色 $alert-color

用于背景和边框的颜色。

$background-lighten 数字 10%

背景颜色的亮度级别。


form-error

@include form-error;

使用设置文件中的值向表单元素添加错误样式。


JavaScript 参考

初始化

您的 JavaScript 中必须包含以下文件才能使用此插件

  • foundation.core.js
  • foundation.abide.js

Foundation.Abide

创建 Abide 的新实例。

var elem = new Foundation.Abide(element, options);

触发这些事件: Abide#event:init

名称类型说明
元素 对象 要添加触发器的 jQuery 对象。
选项 对象 覆盖默认插件设置。

插件选项

使用这些选项来自定义 Abide 的实例。插件选项可以设置为单个数据属性、一个组合的 data-options 属性,或作为传递给插件构造函数的对象。详细了解如何初始化 JavaScript 插件。

名称 类型 默认 说明
data-validate-on 字符串 fieldChange 验证输入的默认事件。复选框和单选按钮会立即验证。删除或更改此值以进行手动验证。
data-label-error-class 字符串 is-invalid-label 验证失败时应用于输入标签的类。
data-input-error-class 字符串 is-invalid-input 验证失败时应用于输入的类。
data-form-error-selector 字符串 .form-error 用于定位表单错误以进行显示/隐藏的类选择器。
data-form-error-class 字符串 is-visible 验证失败时添加到表单错误的类。
data-a11y-attributes 布尔值 true 如果为 true,则尽可能自动插入:- 字段上的 `[aria-describedby]` - 表单错误上的 `[role=alert]` 和表单错误标签上的 `[for]` - 全局错误 `[data-abide-error]` 上的 `[aria-live]`(请参阅选项 `a11yErrorLevel`)。
data-a11y-error-level 字符串 assertive 要应用于全局错误 `[data-abide-error]` 的 `[aria-live]` 属性值。选项有:'assertive'、'polite' 和 'off'/null
data-live-validate 布尔值 false 设置为 true 以在任何值更改时验证文本输入。
data-validate-on-blur 布尔值 false 设置为 true 以在失去焦点时验证输入。
data-validators 要使用的可选验证函数。`equalTo` 是唯一包含的默认函数。如果输入有效,函数应仅返回一个布尔值。函数给出以下参数:el:要验证的 jQuery 元素。

事件

这些事件将从任何附加了 Abide 插件的元素触发。

名称说明
invalid.zf.abide 当输入完成验证检查时触发。事件触发器是 `valid.zf.abide` 或 `invalid.zf.abide`。触发器包括输入的 DOM 元素。
forminvalid.zf.abide 表单完成验证时触发。事件触发器是 `formvalid.zf.abide` 或 `forminvalid.zf.abide`。触发器包括表单的元素。
formreset.zf.abide 表单重置时触发。

方法

enableValidation

$('#element').foundation('enableValidation');

启用整个验证


disableValidation

$('#element').foundation('disableValidation');

禁用整个验证


requiredCheck

$('#element').foundation('requiredCheck', element);

检查表单元素是否具有必需属性以及是否已选中

名称类型说明
元素 对象 要检查必需属性的 jQuery 对象

findFormError

$('#element').foundation('findFormError', $el, failedValidators);

获取

  • 根据 $el,按以下顺序对应于 formErrorSelector 的第一个元素
    1. 元素的直接同级元素。
    2. 元素父级的子级。
  • 使用元素 ID 设置了 [data-form-error-for] 属性的元素。

这允许多个表单错误对应一个输入,但如果没有找到任何错误,则不会显示表单错误。

名称类型说明
$el 对象 用作参考查找表单错误选择器的 jQuery 对象。
failedValidators 数组。 失败验证器的列表。

findLabel

$('#element').foundation('findLabel', $el);

按以下顺序获取第一个元素:2.

名称类型说明
$el 对象 要检查必需属性的 jQuery 对象

findRadioLabels

$('#element').foundation('findRadioLabels', $el);

按以下顺序获取与一组单选按钮元素关联的标签集 2.

名称类型说明
$el 对象 要检查必需属性的 jQuery 对象

findCheckboxLabels

$('#element').foundation('findCheckboxLabels', $el);

按以下顺序获取与一组复选框元素关联的标签集 2.

名称类型说明
$el 对象 要检查必需属性的 jQuery 对象

addErrorClasses

$('#element').foundation('addErrorClasses', $el, failedValidators);

将 Abide 设置指定的 CSS 错误类添加到标签、输入和表单

名称类型说明
$el 对象 要添加类的 jQuery 对象
failedValidators 数组。 失败验证器的列表。

addA11yAttributes

$('#element').foundation('addA11yAttributes', $el);

向所有以 $el 为目标的表单错误添加 [for] 和 [role=alert] 属性,并向 $el 添加指向第一个表单错误的 [aria-describedby] 属性。

名称类型说明
$el 对象 jQuery 对象

addGlobalErrorA11yAttributes

$('#element').foundation('addGlobalErrorA11yAttributes', $el);

向给定的全局表单错误 $el 添加 [aria-live] 属性。

名称类型说明
$el 对象 要添加属性的 jQuery 对象

removeRadioErrorClasses

$('#element').foundation('removeRadioErrorClasses', groupName);

从整个单选按钮组中删除 CSS 错误类等

名称类型说明
groupName 字符串 指定单选按钮组名称的字符串

removeCheckboxErrorClasses

$('#element').foundation('removeCheckboxErrorClasses', groupName);

从整个复选框组中删除 CSS 错误类等

名称类型说明
groupName 字符串 指定复选框组名称的字符串

removeErrorClasses

$('#element').foundation('removeErrorClasses', $el);

从标签、输入和表单中删除 Abide 设置指定的 CSS 错误类

名称类型说明
$el 对象 要删除类的 jQuery 对象

validateInput

$('#element').foundation('validateInput', element);

遍历表单以查找输入,并继续以特定于其类型的方式对其进行验证。忽略设置了 data-abide-ignore、type="hidden" 或 disabled 属性的输入

**触发以下事件:** Abide#event:invalid Abide#event:valid

名称类型说明
元素 对象 要验证的 jQuery 对象,应为 HTML 输入

validateForm

$('#element').foundation('validateForm');

遍历表单,如果存在任何无效输入,它将显示表单错误元素

**触发以下事件:** Abide#event:formvalid Abide#event:forminvalid


validateText

$('#element').foundation('validateText', $el, pattern);

根据属性中指定的模式确定文本输入是否有效。如果没有找到匹配的模式,则返回 true。

名称类型说明
$el 对象 要验证的 jQuery 对象,应为文本输入 HTML 元素
模式 字符串 Abide.options.patterns 中一个正则表达式模式的字符串值

validateRadio

$('#element').foundation('validateRadio', groupName);

根据单选输入是否必需和是否已选中来确定其是否有效。尽管该函数以单个 <input> 为目标,但它通过检查其组中所有单选按钮的 requiredchecked 属性来进行验证。

名称类型说明
groupName 字符串 指定单选按钮组名称的字符串

validateCheckbox

$('#element').foundation('validateCheckbox', groupName);

根据复选框输入是否必需和是否已选中来确定其是否有效。尽管该函数以单个 <input> 为目标,但它通过检查其组中所有复选框的 requiredchecked 属性来进行验证。

名称类型说明
groupName 字符串 指定复选框组名称的字符串

matchValidation

$('#element').foundation('matchValidation', $el, validators, required);

确定所选输入是否通过自定义验证函数。可以使用多个验证,如果使用以空格分隔的列表将其传递给 data-validator="foo bar baz" 元素。

名称类型说明
$el 对象 jQuery 输入元素。
验证器 字符串 与 Abide.options.validators 对象中的函数匹配的函数名称字符串。
必需 布尔值 不言自明?

resetForm

$('#element').foundation('resetForm');

重置表单输入和样式

**触发以下事件:** Abide#event:formreset


_destroy

$('#element').foundation('_destroy');

销毁 Abide 的实例。从元素中删除错误样式和类,而不重置其值。