根据发布文档,Regula 1.3.0 应该支持异步验证。似乎复合约束能够以某种方式选择异步。这也适用于自定义验证吗?这将是什么语法?
问问题
122 次
1 回答
2
我仍在努力完成 1.3 的文档(我目前所拥有的可以在此处获得)。
异步支持可用于自定义约束和复合约束(至少包含一个异步约束)。
定义异步约束的语法非常简单:
regula.custom({
name: "MyAsyncContraint",
async: true,
defaultMessage: "The asynchronous constraint failed.",
validator: function(params, validator, callback) {
//Using jQuery as an example
jQuery.ajax({
url: myUrl,
dataType: "jsonp",
success: function(data) {
//Use the callback to pass the result of validation back to
//regula.
callback(data.pass)
}
});
}
});
没有明确的语法或调用来使复合约束异步。任何包含一个或多个异步的复合约束都是隐式异步的。要验证异步约束(甚至是同步和异步约束的混合),只需将 a 传递callback
给.validate
:
regula.validate(function(constraintViolations) {
...
});
您也可以使用.validate
with 选项和回调:
regula.validate(options, function(constraintViolations) {
...
});
于 2013-11-18T16:53:46.693 回答