Validation Liferay:通过JavaScript在运行时控制表单验证程序

Validation Liferay:通过JavaScript在运行时控制表单验证程序,validation,liferay,Validation,Liferay,我正在使用Liferay 6.2和使用AUI taglib的内置表单验证程序,即: <aui:input ... > ... <aui:validator name="number" errorMessage="Enter number" /> </aui:input> ... 有没有办法通过JavaScript在运行时(显示portlet后)禁用和重新启用验证 我想到的唯一解决方案是将所有验证器重新实现为具有相同功能和开/关开关的

我正在使用Liferay 6.2和使用AUI taglib的内置表单验证程序,即:

<aui:input ... > 
    ... 
    <aui:validator name="number" errorMessage="Enter number" />
</aui:input>

... 
有没有办法通过JavaScript在运行时(显示portlet后)禁用和重新启用验证


我想到的唯一解决方案是将所有验证器重新实现为具有相同功能和开/关开关的自定义验证器-这看起来需要做很多工作。

我确实使用了建议的方法将验证器重新实现为自定义验证器,这不是一项太大的工作,但不必这样做会非常好

深入查看某些liferay组件,我发现liferay.auto_字段确实删除了验证器,并在需要时将其添加回。执行此操作的代码如下所示:()

我没有试着自己做,但这应该行得通。需要注意的重要事项是,要获取formValidator,您需要(请参见上的)


感谢我们将在接下来的几天内尝试,并让您知道结果。
var errors = formValidator.errors;
rules = formValidator.get('rules');
node.all('input, select, textarea').each(function(item, index) {
    var name = item.attr('name') || item.attr('id');
    if (rules && rules[name]) {
    deletedRules[name] = rules[name];
    delete rules[name];
    }
    if (errors && errors[name]) {
    delete errors[name];
    }
});
Liferay.Form.get(formId).formValidator