Abide
JavaScriptAbide 是一个表单验证库,它使用自定义验证器扩展了 HTML5 验证 API。
Abide 演示
这些输入类型创建一个文本字段:text
、date
、datetime
、datetime-local
、email
、month
、number
、password
、search
、tel
、time
、url
和 week
。请注意使用 novalidate 属性来禁用任何可能与 Abide 冲突的浏览器验证。
<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>
您的表单中有一些错误。
表单错误
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
});
内置模式和验证器
以下模式和验证器已经内置
alpha
、alpha_numeric
、card
、color
cvv
、date
、dateISO
、datetime
、day_month_year
、domain
、email
、integer
、month_day_year
、number
、time
、url
除了这些标准模式之外,我们还有一个 website
模式,它基本上是 domain
和 url
模式的组合,我们建议您使用此 website
模式来验证网站。
它们由正则表达式定义,如下所示。请注意,与文本相关的模式(例如 alpha
和 alpha_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
的第一个元素- 元素的直接同级元素。
- 元素父级的子级。
- 使用元素 ID 设置了
[data-form-error-for]
属性的元素。
这允许多个表单错误对应一个输入,但如果没有找到任何错误,则不会显示表单错误。
名称 | 类型 | 说明 |
---|---|---|
$el |
对象 | 用作参考查找表单错误选择器的 jQuery 对象。 |
failedValidators |
数组。 |
失败验证器的列表。 |
findLabel
$('#element').foundation('findLabel', $el);
按以下顺序获取第一个元素:2.
名称 | 类型 | 说明 |
---|---|---|
$el |
对象 | 要检查必需属性的 jQuery 对象 |
findRadioLabels
$('#element').foundation('findRadioLabels', $el);
按以下顺序获取与一组单选按钮元素关联的标签集 2.[for="someInputId"]
属性的 3. .closest()
名称 | 类型 | 说明 |
---|---|---|
$el |
对象 | 要检查必需属性的 jQuery 对象 |
findCheckboxLabels
$('#element').foundation('findCheckboxLabels', $el);
按以下顺序获取与一组复选框元素关联的标签集 2.[for="someInputId"]
属性的 3. .closest()
名称 | 类型 | 说明 |
---|---|---|
$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>
为目标,但它通过检查其组中所有单选按钮的 required
和 checked
属性来进行验证。
名称 | 类型 | 说明 |
---|---|---|
groupName |
字符串 | 指定单选按钮组名称的字符串 |
validateCheckbox
$('#element').foundation('validateCheckbox', groupName);
根据复选框输入是否必需和是否已选中来确定其是否有效。尽管该函数以单个 <input>
为目标,但它通过检查其组中所有复选框的 required
和 checked
属性来进行验证。
名称 | 类型 | 说明 |
---|---|---|
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 的实例。从元素中删除错误样式和类,而不重置其值。