近两日,用了DreamWeaver CS3中的SPRY组件。发现,它能自动的对一些输入进行前台认证。还算比较方便,它内置了一些验证的内容,例如:数字验证、字符串验证、邮政编码验证、日期验证等等。
不过,美中不足的是,它内置的一些验证,在中国的实际应用中并不是很大,因为它提供的一些验证都是以美国的标准来的,和中国的标准还有些差距。
这时,唯一想到就是扩展它的验证。修改它的代码就不想了,自己水平不够。看看有没有其他的方法。在网络上找了一些资料后,经过自己的实践,终于成功了。现将代码赋予其后。
<
span
id
="sprytextfield1"
>
< input type ="text" name ="text1" id ="text1" />
< span class ="textfieldRequiredMsg" > 需要提供一个值。 </ span >
< input type ="text" name ="text1" id ="text1" />
< span class ="textfieldRequiredMsg" > 需要提供一个值。 </ span >
<
span
class
="textfieldInvalidFormatMsg"
>
数据无效。
</
span
></
span
>
这是你手动拖一个SPRY的文本框验证的生成一段代码。
后面是一段声明SPRY的代码
<
script
type
="text/javascript"
>
<!--
var sprytextfield1 = new Spry.Widget.ValidationTextField
<!--
var sprytextfield1 = new Spry.Widget.ValidationTextField
(
"
sprytextfield1
"
,
"
custom
"
, {validateOn:[
"
blur
"
],validation:EXT});
// -->
</ script >
// -->
</ script >
最后的validation:EXT是我手动添加的,表示SPRY的验证通过调用EXT这个函数来实现。EXT返回True,表明验证通过,EXT返回False表示验证不通过。(EXT是函数名,可以自己另外定义,不过这种方法貌似不能传递参数)
<
script
language
="javascript"
>
var EXT = function (){
var objReg = / (13)(\d{9}) / ;
t = form1.text1.value;
return objReg.test(t);
}
</ script >
var EXT = function (){
var objReg = / (13)(\d{9}) / ;
t = form1.text1.value;
return objReg.test(t);
}
</ script >
上面这段代码,表示验证text1的内容时候符合中国的手机号码。
我们可以通过修改EXT函数来达到自定义验证的效果。例如:验证密码框和重复密码框中的内容是否一样。
<
script
language
="javascript"
>
var EXT = function (){
return (form1.Pass.value == form1.RePass.value);
}
</ script >
var EXT = function (){
return (form1.Pass.value == form1.RePass.value);
}
</ script >