0

我想创建一种新型的 aui 验证器。例如 :

<aui:input name="firstName" type="text" maxlength="40">
    <aui:validator name="required" />
    <aui:validator name="alpha" />
</aui:input>

alpha 验证器不接受空格字符,我想使用一个接受 alpha 字符和空格字符的类型,我已经有一个使用 javascript 来使用自定义验证器的解决方案,但我想定义一个新的验证器类型来使用其他通过调用验证器标签,例如:

<aui:validator name="myValidator" />

那可能吗 ?!我该怎么做;)

4

2 回答 2

1

试试你的运气吧:)

<aui:input name="firstName" type="text">
    <aui:validator name="myValidator" errorMessage="numbers-not-allowed">
        function(val, fieldNode, ruleValue){ 
            var matches = val.match(/\d+/g);
            if(matches != null)
                return false;
            else
                return true;
       }
    </aui:validator>
</aui:input>
于 2013-12-12T19:19:48.610 回答
0

作为 Parkash 答案的替代方案,您可以制作一个单独的 jspf 文件并编写您的验证,如下所示:

<aui:script use="liferay-form">
    var ns = '<portlet:namespace/>';

    window.onload = function() {
    
    var form = Liferay.Form.get(ns+'form_add_user');
    
    form.set(
        'fieldRules', 
        [
          {
                fieldName:      ns+'middlename',
                validatorName:  'custom_middlename',
                custom:         true,
                errorMessage:   'Only text and spaces here!',
                body:           function(value, field, rule) 
                {
                    return /^[a-zA-Z\s\.\u00E0-\u00FC]+$/.test(value);
                }
            },
            ...
        ]
     );
}
</aui:script>

在 Liferay 7.0 文档中找到

于 2022-02-28T13:13:34.570 回答