Liferay<;aui:验证程序>;约会?

Liferay<;aui:验证程序>;约会?,liferay,liferay-6,liferay-aui,Liferay,Liferay 6,Liferay Aui,我正在尝试为注册表上的生日字段创建一个简单的自定义aui:验证器,但它根本不起作用。有什么想法吗 <aui:input name="birthday" value="<%=birthday%>"> <aui:validator name="custom" errorMessage="some-error"> function (val, fieldNode, ruleValue) { return false;

我正在尝试为注册表上的生日字段创建一个简单的自定义aui:验证器,但它根本不起作用。有什么想法吗

<aui:input name="birthday" value="<%=birthday%>">
    <aui:validator name="custom" errorMessage="some-error">
        function (val, fieldNode, ruleValue) {
            return false;
        }
    </aui:validator>
</aui:input>

函数(val、fieldNode、ruleValue){
返回false;
}
我想实现的是检查用户在注册时是否为18岁


任何提示都将不胜感激

在此,我验证所选日期是否大于今天的日期。您可以根据需要进行更改

<script>
 AUI().ready('aui-form-validator', 'aui-overlay-context-panel', function(A) {

   A.mix(
        YUI.AUI.defaults.FormValidator.RULES,
        {
            dateCustomRule: function(val, fieldNode, ruleValue) {
                var val = new Date(Date.parse(val,"MMM dd yyyy"));
                var today=new Date();

                return (val>today);

            }
        },
        true
    );

    var validator2 = new A.FormValidator({
        boundingBox: document.<portlet:namespace/>form,

        fieldContainer: 'p',

        rules: {        
            <portlet:namespace />dueDate:{
                required: true,
                dateCustomRule:true
            }
        },
    fieldStrings: {

            <portlet:namespace />dueDate: {
                required: 'Due Date Required',
                dateCustomRule: 'Date must be greater than Today\'s Date'
            }

        },

        on: {
            validateField: function(event) {
            },

            validField: function(event) {
            },

            errorField: function(event) {
            },

            submitError: function(event) {
                var formEvent = event.validator.formEvent;
                var errors = event.validator.errors;

            },

            submit: function(event) {
                var formEvent = event.validator.formEvent;
                return false;
            }
        }
    });

});
</script>

AUI().ready('AUI-form-validator','AUI overlay context panel',函数(A){
混合(
YUI.AUI.defaults.FormValidator.RULES,
{
dateCustomRule:函数(val、fieldNode、ruleValue){
var val=新日期(Date.parse(val,“MMM-dd-yyyy”);
var today=新日期();
返回(val>今天);
}
},
真的
);
var validator2=新的A.FormValidator({
边界框:document.form,
fieldContainer:'p',
规则:{
截止日期:{
要求:正确,
dateCustomRule:true
}
},
字段字符串:{
截止日期:{
必需:“必需的截止日期”,
dateCustomRule:“日期必须大于今天的日期”
}
},
关于:{
validateField:函数(事件){
},
validField:函数(事件){
},
errorField:函数(事件){
},
子线程:函数(事件){
var formEvent=event.validator.formEvent;
var errors=event.validator.errors;
},
提交:功能(事件){
var formEvent=event.validator.formEvent;
返回false;
}
}
});
});

不幸的是,我也无法使用Lucky Boy的解决方案。出于某种神秘的原因,它在
create\u account.jsp
文件中不起作用

作为一种解决方法,我在文件头中创建了一个新的异常:

<liferay-ui:error exception="<%=NotOldEnoughException.class%>"
    message="Not old enough" />


并签入了一个钩住版的
EditUserAction
文件。

创建验证器的正确方法如下所示

我希望它能帮助你

                         <aui:validator name="custom"  errorMessage="Tienes que ser mayor de 18 años">
                                     function (val, fieldNode, ruleValue) {
                                             var val = new Date(Date.parse(val,"MMM dd yyyy"));
                                             var adult=new Date();

                                             adult.setFullYear(adult.getFullYear() - 18)

                                             return (val<adult);
                                     }
                              </aui:validator>

函数(val、fieldNode、ruleValue){
var val=新日期(Date.parse(val,“MMM-dd-yyyy”);
var成人=新日期();
成人.setFullYear(成人.getFullYear()-18)

return(Val)在实现我的解决方案时,您遇到了什么问题?老实说,我完全不确定。我对代码进行了三次检查。问题是Firebug和Dragonfly都没有指出与您的解决方案相关的任何jscript错误(我在其他几个论坛上也看到了apporach,因此基本上它应该可以工作)。Tomcat中也没有例外。
create_account.jsp
的后台一定有一些魔术,把事情搞砸了。或者我有一些小错误。无论如何,谢谢你的时间,如果我发现了问题,我会回到这个线程。这是为liferay 7.0准备的