liferay中一般常见用AUI写表单。有时候我们需要做验证。为了保证页面的一致性。最好和liferay的源码一样使用相同的校验方式。那么下面就介绍一下AUI的校验<aui:validator>标签的使用。
例如有文本框
<aui:input type="text"></aui:input>
我们想要设置这个项目的校验 。下面所有的校验都是写在这个标签的之间例如
<aui:input type="text"> <aui:validator name="required" errorMessage="Field is required" > </aui:input>
1.设置为必填项
<aui:validator name="required " errorMessage="Field is required" >
name设置为 required 即为必填项 errorMessage里面写上自己想要提示的话的KEY,然后在国际化资源文件里面写上对应的label。这样当不符合校验规则的时候。就会在字段后面加入提示语。
2.仅接受字母
<aui:validator name="alpha"/>
name设置为alpha 即只接受字母。
3.只接受对应的后缀名的文件(在type为file时有效)
<aui:validator name="acceptFiles">'jpg,png,tif,gif'</aui:validator>
把name设置为acceptFiles 也就是接收文件的意思。标签中间的即为可接受的后缀名,多个后缀名用半角的,逗号来隔开。
4.只接受字母和数字
<aui:validator name="alphanum"/>
name设置为alphanum 即为仅接受字母和数字。
5.校验输入项是否为日期格式
<aui:validator name="date"></aui:validator>
name设置为date 即会校验输入的值是否是日期格式。
6.仅接收数字
<aui:validator name="digits"></aui:validator>
name设置为digits 即为仅接收数字
7.仅接收邮箱地址
<aui:validator name="email"/>
name设置为 email 即可校验输入值是否符合邮箱地址的格式
8.某项值是否与另一项相同
<aui:input name="password1" id="password1" value='' label="Password"> <aui:validator name="required"></aui:validator> </aui:input> <aui:input name="password2" value='' label="Re Type Password"> <aui:validator name="equalTo">'#<portlet:namespace />password1'</aui:validator> </aui:input>
name设置为equalTo 在标签中间写上想比较的项目的id即可比对是否相同。
9.最大值校验
<aui:validator name="max">60</aui:validator>
name设置为 max 标签中间输入最大值即可。
10.最小值校验
<aui:validator name="min">60</aui:validator>
name设置为 min 标签中间输入最小值即可。
11.输入字符最大数量
<aui:validator name="maxLength">10</aui:validator>
name设置为maxLength 标签中间输入最大字符数即可。
12.输入最小字符数量
<aui:validator name="minLength">8</aui:validator>
name设置为minLength 标签中间输入最小字符数即可。
13.可有正负号与小数的数字
<aui:validator name="number"></aui:validator>
name设置为 number 即仅接受 有正负号和小数的数字。
14.校验网址url格式
<aui:validator name="url"/>
name设置为url 即可校验输入值是否符合URL格式。
15.自定义校验
<aui:input name="age" value='' label="Age"> <aui:validator name="custom" errorMessage="You must have 18 years or more" > function (val, fieldNode, ruleValue) { var result = false; if (val >=18) { result = true; } return result; } </aui:validator> </aui:input>
name设置为 custom 即为自定义校验。自定义校验要自己写js 当返回true的时候为校验通过。false为校验不通过。方法参数中的val为输入项里面的值。
自定义校验不通过时无法自动阻止表单提交。请自己在js中做表单提交的校验与阻止。
16.校验的复合使用demo
<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %> <%@ taglib uri="http://liferay.com/tld/aui" prefix="aui" %> <%@ taglib uri="http://liferay.com/tld/theme" prefix="liferay-theme" %> <%@ taglib uri="http://liferay.com/tld/ui" prefix="liferay-ui" %> <liferay-theme:defineObjects /> <portlet:defineObjects /> <aui:form name="fm2" action="" method="post"> <aui:input name="userName" value='' label="User Name"> <aui:validator name="required" /> <aui:validator name="alphanum" /> </aui:input> <aui:input name="firstName" value='' label="First Name"> <aui:validator name="required" /> <aui:validator name="alpha" /> </aui:input> <aui:input name="lastName" value='' label="Last Name"> <aui:validator name="alpha" /> </aui:input> <aui:input name="email" value='' label="Email"> <aui:validator name="email" /> </aui:input> <aui:input name="date" value='' label="Date of Birth"> <aui:validator name="date"></aui:validator> </aui:input> <aui:input name="phoneNumber" value='' label="Phone Number"> <aui:validator name="digits"></aui:validator> <aui:validator name="minLength">8</aui:validator> <aui:validator name="maxLength">10</aui:validator> </aui:input> <aui:input name="price" value='' label="Price Range"> <aui:validator name="number"></aui:validator> <aui:validator name="min">200</aui:validator> <aui:validator name="max">1000</aui:validator> </aui:input> <aui:input name="password1" id="password1" value='' label="Password" type="password"> <aui:validator name="required"></aui:validator> </aui:input> <aui:input name="password2" value='' label="Re Type Password" type="password"> <aui:validator name="required" /> <aui:validator name="equalTo">'#<portlet:namespace />password1'</aui:validator> </aui:input> <aui:input name="webSite" value='' label="Website Address"> <aui:validator name="url" /> </aui:input> <aui:input name="age" value='' label="Age"> <aui:validator name="custom" errorMessage="You must have 18 years or more"> function (val, fieldNode, ruleValue) { var result = false; //alert(val); if (val >=18) { result = true; } return result; } </aui:validator> </aui:input> <aui:button type="submit" name="save" value="Save" /> </aui:form>