📅  最后修改于: 2023-12-03 14:43:28.364000             🧑  作者: Mango
jQWidgets jqxValidator 是一个基于 jQuery 和 jQWidgets 的表单验证插件。它支持多种验证规则和自定义错误消息,并可以在表单提交前对表单数据进行校验。
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jqwidgets/11.0.1/jqwidgets/styles/jqx.base.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqwidgets/11.0.1/jqwidgets/jqxcore.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqwidgets/11.0.1/jqwidgets/jqxvalidator.js"></script>
<form id="myForm">
<div>
<label for="email">Email:</label>
<input type="email" id="email" name="email" required>
</div>
<div>
<label for="password">Password:</label>
<input type="password" id="password" name="password" minlength="8" required>
</div>
<button type="submit">Submit</button>
</form>
$(document).ready(function () {
$('#myForm').jqxValidator({
rules: [
{
input: '#email',
message: 'Email is required',
action: 'keyup, blur',
rule: 'required'
},
{
input: '#email',
message: 'Email is invalid',
action: 'keyup',
rule: 'email'
},
{
input: '#password',
message: 'Password is required',
action: 'keyup, blur',
rule: 'required'
},
{
input: '#password',
message: 'Password must be at least 8 characters long',
action: 'keyup',
rule: 'minLength=8'
}
]
});
});
在 rules 属性中定义验证规则,每个验证规则包含以下属性:
$(document).ready(function () {
$('#myForm').on('formSubmit', function () {
if ($('#myForm').jqxValidator('validate')) {
// 验证通过,提交表单
}
});
});
在表单提交前,可以通过调用 jqxValidator 的 validate 方法来验证表单。返回值为 true 表示验证通过,可以提交表单;返回值为 false 表示有验证失败的表单元素,不进行表单提交。
jQWidgets jqxValidator 支持多种预定义的验证规则,可以通过 rule 属性使用。以下是部分预定义的验证规则:
可以通过 message 属性自定义验证失败时的错误消息。
$(document).ready(function () {
$('#myForm').jqxValidator({
rules: [
{
input: '#email',
message: 'Email is required',
action: 'keyup, blur',
rule: 'required'
},
{
input: '#email',
message: 'Email is invalid',
action: 'keyup',
rule: 'email'
}
]
});
});
可以通过 rule 属性自定义验证规则,rule 属性可以是一个函数,函数接受两个参数:value 表单元素的值和 validationMessage 错误消息。函数返回一个布尔值,true 表示验证通过,false 表示验证失败。
以下是自定义验证规则的示例:
$(document).ready(function () {
$('#myForm').jqxValidator({
rules: [
{
input: '#age',
message: 'Age must be greater than or equal to 18',
rule: function (input, commit) {
if (parseInt(input.val(), 10) < 18) {
return false;
}
return true;
}
}
]
});
});
jQWidgets jqxValidator 提供了丰富的验证规则和自定义功能,可以方便地实现表单验证。它与 jQWidgets 的其他插件相容,可以方便地在项目中使用。