这两天我们使用基于prototype的validation.js表单验证,官方网站的例子是用div,可是我们用的是table,看了很长时间都不知道怎么弄,最后经过不断试验,和查看资料,得出了一下结论,如果使用table的<tr><td>做表单,在页面上除了引入prototype.js,validation.js等,还需要写下如下代码:
<script type="text/javascript">
window.onload = function(){
var validator = new Validation('frmRegister', {stopOnFirst:true, immediate:true});
}
</script>
frmRegister为form的id值。
使用时,只需在输入框加入class=" *** " 这里的*为你所用调用的js,例如class="required min-length-4 max-length-10;" ,除此还遇到了一个问题,就是如何验证下拉列表不为空,这个好像validation.js中没有,最后我才知道,是要自己写,将自己定义的js这样写:
['validate-select', '请输选择下拉列表', function(v) {
return Validation.get('IsEmpty').test(v) || /[^0]/.test(v);
}],
通过正则表达式使值不能等于"0"实现。
最后说一下,validation.js中的内容:
required -- 非空域
validate-number -- 一个有效数
validate-digits -- 只能包含[0-9]任意个数字
validate-alpha -- 只能是字母[a-zA-Z]
validate-alphanum -- 只能是字母和数字的组合
validate-date -- 只能是日期
validate-email -- 只能是有效的email
validate-url -- 只能是有效的url地址
validate-date-au -- 日期的形式必须是dd/mm/yyyy
validate-one-required -- 至少有一个被选中,例如一组checkbox, radiobutton,它们最好包含在一个div和span中
validate-date-cn -- 日期的形式必须是yyyy/mm/dd
validate-integer -- 只能是整数,可以有正负号
validate-chinese -- 只能是中文
validate-ip -- 有效的IP地址
validate-phone -- 有效的电话(仅适用于中国)
validate-mobile-phone -- 有效的手机号,在badqiu的版本中只验证了135的,有待改进
validate-equals-$otherInputId -- 必须和某个input field相等例如 validate-equals-otherInputId(此处$some表示一个特定的值)
less-than-$otherInputId -- 小于某个input field less-than-otherInputId(此处$some表示一个特定的值)
great-than-$otherInputId -- 大于某个input field less-than-otherInputId(此处$some表示一个特定的值)
min-length-$number -- 最小长度是$number(此处$some表示一个特定的值)
max-length-$number -- 最大长度是$number(此处$some表示一个特定的值)
validate-file-$type1-$type2-$typeX -- file的input必须是声明的$type1 -- $typeX中的一种
validate-float-range-$minValue-$maxValue -- 必须是$minValue到$maxValue的一个浮点数
validate-int-range-$minValue-$maxValue -- 必须是$minValue到$maxValue的一个整数
validate-length-range-$minLength-$maxLength -- 输入字符串的长度必须在$minLength到$maxLength之间
max-value-$number -- 输入域的最大值是$number
min-value-$number -- 输入域的最小值是$number
validate-pattern-$patternAttributes -- 通过自定义pattern来验证输入域的正确性
validate-ajax -- 通过ajax来验证输入域
这些属性都可以定义在表单验证输入框的class中。