我正在使用Grails JQuery Validation UI Plugin作为grails 2.1.0。
基于命令对象约束,我几乎拥有我的表单valadting客户端。 有一个问题,我的命令对象中有自定义约束:
startTime(nullable: false, validator: {startTime, deal ->
if ((!DateUtils.isSameDay(startTime, new Date()) && startTime.before(new Date()))) //Start date is today or future but not before end date
{
return "pastDate"
}
if (deal.endTime && startTime.after(deal.endTime)) {
return "before.endTime"
}
})
这导致使用页面标记生成以下呈现的jQuery验证代码:
startTime: {
date: true,
required: true,
validator: {
url: '/appContextRoot/JQueryRemoteValidator/validate',
type: 'post',
data: {
validatableClass: 'myapp.command.tester.testerDealCommand',
property: 'startTime'
}
}
}
使用“验证器:”的custum约束逻辑当前没有任何操作。
让这个自定义验证器工作的最佳方法是什么?
1:某种形式的Ajax调用?
2:使用Custom Constraits插件并将js代码添加到grails-validation-methods.js?
3:其他方式?
我不确定使用选项2 ....是否有某种方法来扩展插件?
我不想在源代码库中提交和维护插件的单独版本。
答案 0 :(得分:1)
如果我理解正确的插件,则无需将自定义验证直接添加到grails-validation-methods.js
如果你之后加载你的脚本,你可以遵循他的惯例:
jQuery.validator.addMethod("myCustomValidation", function(value, element, params) {
//perform your validation here
}, "Custom validation fail.");