jQWidgets
是一个基于jQuery
的现代UI框架,它包含了各种各样的UI组件,例如数据表格、日历等等。其中jqxValidator
组件是用于表单验证的组件,它可以在用户提交表单前对表单的输入进行预处理和判断。在使用jqxValidator
组件的过程中,广泛使用onError
属性。接下来,我将详细讲解“jQWidgets jqxValidator onError
属性”的完整攻略。
onError
属性介绍
jqxValidator
组件中的onError
属性是用于在输入有误时进行处理的函数。当jqxValidator
组件检测到用户输入有误时,会调用onError
函数。这个函数可以是内部函数或外部定义函数。onError
函数的默认返回值为false
,如果返回false
,则表单验证失败,不会提交给后端服务器,同时触发validationError
事件。如果返回true
则表单正常提交并触发validationSuccess
事件。
onError
属性语法说明
onError
属性定义了一个函数,它将由jqxValidator
组件在验证失败时调用。函数包含event
参数。event
参数中包含以下属性:
args
: 错误信息对象,其中包括以下属性:element
: 所出错的元素。message
: 出错信息文本。rule
: 规则名称,其中包含有误的验证规则。input
: 所验证的输入元素。
属性语法如下所示:
$(selector).jqxValidator({
rules: [
{ input: '#username', message: 'Username is required!', action: 'keyup, blur', rule: 'required' },
{ input: '#password', message: 'Password is required!', action: 'keyup, blur', rule: 'required' }
],
onError: function(event) {
// some code goes here
}
});
在上面的示例中,我们定义了一个包含onError
属性的jqxValidator
实例,当该实例进行验证行为时,onError
函数将会被调用。
onError
属性示例1
下面我将通过一个示例来更具体的说明onError
属性的使用。
假设我们需要对一个表单进行验证,表单中包含两个输入框:用户名和密码。其中用户名不能为空,密码长度必须大于4个字符。我们可以使用以下的jqxValidator
实例:
$(selector).jqxValidator({
rules: [
{ input: '#username', message: 'Username is required!', action: 'keyup, blur', rule: 'required' },
{ input: '#password', message: 'Password must have a length > 4!', action: 'keyup, blur', rule: 'length[4, 50]' }
],
onError: function(event) {
alert(event.args.message);
$(event.args.element).addClass('error');
}
});
在这个示例中,我们将onError
函数定义为一个匿名函数。当表单验证失败时,将会弹出一个错误框,并将出错的输入元素添加error
类名。
onError
属性示例2
下面我们再来一个更复杂的例子,模拟Ajax异步验证。
在这个示例中,我们将用户名和密码的输入框的验证改为了异步验证。我们在验证开始时,显示了一个loading提示,当异步验证完成后,我们将取消loading提示。代码示例如下:
var usernameLoaded = false,
passwordLoaded = false;
$(selector).jqxValidator({
rules: [
{ input: '#username', message: 'Username is required!', action: 'keyup, blur', rule: 'required' },
{ input: '#password', message: 'Password must have a length > 4!', action: 'keyup, blur', rule: 'length[4, 50]' }
],
onError: function(event) {
// some code goes here
},
onInitInput: function (input) {
$(input).addClass('jqx-validator-loading');
},
onValidationSuccess: function (event) {
// do something
},
onValidationComplete: function (event) {
$(selector).find('.jqx-validator-loading').removeClass('jqx-validator-loading');
},
onAsyncValidate: function (event) {
var inputFieldId = event.data.name.split('|')[0];
if (inputFieldId == 'username') {
if (usernameLoaded) {
event.response = true;
event.owner.validate();
} else {
usernameLoaded = true;
setTimeout(function () {
event.response = 'Username already exists';
event.owner.validate(false, inputFieldId);
}, 1000);
}
} else if (inputFieldId == 'password') {
if (passwordLoaded) {
event.response = true;
event.owner.validate();
} else {
passwordLoaded = true;
setTimeout(function () {
event.response = 'Password is too weak';
event.owner.validate(false, inputFieldId);
}, 1000);
}
}
}
});
在这个示例中,我们定义了onInitInput
回调函数,在验证开始时添加了一个loading
类名,为每个验证的输入框创建了一个请稍等的效果。在onAsyncValidate
回调函数中,我们模拟了异步验证的过程。在异步验证过程结束后,validate()方法会被调用,并再次验证输入框。最后,在onValidationComplete
回调函数中,将移除所有loading类名。
至此,jqxValidator
组件中的onError
属性的完整攻略讲解结束。通过以上的详细讲解和示例应该可以更加清晰的理解和运用该属性了。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:jQWidgets jqxValidator onError属性 - Python技术站