Mathis Hobden
Mathis Hobden

Reputation: 356

LifeRay creating a new type of aui validator

I want to create a new type of aui validator. For example :

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

the alpha validator does not accept the space character, i want to use a type that accepts alpha characters plus the space character, i have already a solution using javascript to use a custom validator, but i want to define a new validator type to use like the others by invoking the validator tag e.g :

<aui:validator name="myValidator" />

Is that possible ?! and how can i do it ;)

Upvotes: 0

Views: 3431

Answers (2)

As an alternative to Parkash answer, you can make a separate jspf file and write your validations like this:

<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>

Found in Liferay 7.0 documentation

Upvotes: 0

Parkash Kumar
Parkash Kumar

Reputation: 4730

Try your luck on it :)

<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>

Upvotes: 1

Related Questions