【连载】研究EasyUI系统—ValidateBox组件

  validatebox组件是所有可验证组件的“父类”,依赖它的组件包括textbox等,而它依赖于tooltip组件。validatebox最大的作用在于它具有验证用户输入的能力,它能让开发者省去很多用户输入校对的工作,更专心于业务逻辑的开发。
  
validatebox的html构造形式如下:

<input id="vbox" class="easyui-validatebox" data-options="required:true,validType:'email'" />

validatebox的js构造形式如下:

<input id="vbox" />
<script>
    $("#vbox").validatebox({
        required: true,
        validType: 'email',
        missingMessage: '内容不能为空',
        invalidMessage: '内容无效',
        onValidate:function(v) {
            if(v) {
                alert("验证通过");
            }
        }
    });
</script>

  validatebox以<input>标签为基础,html和js形式的validatebox均构造了一个验证email格式的输入框,效果如下:
validatebox组件效果图
  上例代码构造了validatebox的一些属性和它的验证事件。
  reqiured属性表明是否为“必需”项。
  validType表明验证的类型,此处“email”表明是否为电子邮件的格式。
  missingMessage显示了组件内容为空时的提示信息。
  invalidMessage表示输入的内容不符合validType指定的类型时所提示的信息,本例中如果用户输入的内容不是有效的email地址,将提示“内容无效”。
  
validatebox属性:

属性名称属性值类型属性默认值描述
required布尔值false是否必须验证。
validType字符串,数组null验证类型。
delay数值200输入完成直至验证的中间时间间隔。
missingMessage字符串“This field is required.”组件内容为空时的提示信息。
invalidMessage字符串null组件内容无效时的提示信息。
tipPosition字符串“right”提示信息在组件中所处的位置。
有“right”和“left”两种位置。
deltaX数值0提示信息距离组件的水平偏移位置。
novalidate布尔值false组件是否开启验证功能。

  missingMessage表示当组件输入的内容为空时所提示的信息,默认是”This field is required”,显示这串英文字符串的前提条件是用户没有导入中文语言包,如果导入easyui/locale/easyui-lang-zh_CN.js中文语言包,则会变成中文提示信息“该输入项为必输项”。
  invalidMessage用法及前提条件和missingMessage类似,当组件输入的内容不符合要求时将提示信息。导入了中文语言包后,如果输入的内容不是有效的电子邮件地址,便会提示“请输入有效的电子邮件地址”。
  validType属性可是重头戏。validType的作用是指定组件验证的类型,如果validType为”email”,那么所有输入的内容不符合电子邮件格式的,将会报错。
  easyui框架内,validType属性已经实现了”email”、”url”、”length:[x,y]”、”remote:[url,p]”四个类型。
  email代表电子邮件。
  url代表超链接。
  length:[x,y]表示允许x和y长度之间的字符(如length:[10,50])。
  remote:[url,p]表示向远程地址发送ajax请求来进行验证,url表示远程地址,p表示向url发送请求时所携带的参数,返回true表示成功。如remote:[‘test/test.php’,’address’],则向test/test.php发送请求,并携带名为address的参数,该参数的值就是组件输入的内容。
  validType属性在使用语法上也根据类型不同而不同,目前有三种形式。
  第一种是单独的字符串形式,也是最简单的一种,上例代码中便是这种形式。
  第二种是键值对形式,请看以下代码:

$("#vbox").validatebox({
    validType:['url', 'length[3,50]']
});

  代码展示了键值对的用法,语法上与第一种有区别。它表示使用url的验证规则,并且url的长度在3到50个字符之间。
  第三种是多个数组的形式,这种形式最灵活,能匹配多个规则。

$("#vbox").validatebox({
    validType:{
        length[3,50],
        remote:['test/test.php','address']
    }
});

  第三种语法与第一和第二种又有区别。这种验证方式由包含多个验证规则的数组组成,它的含义为输入内容的长度必须在3至50个字符之间,并提交给test/test.php验证,提交时携带名为address的参数。
  关于验证方式,还可以有其他更高级的自定义方法,会另设一文讲述。
  
validatebox方法:

方法名称参数描述
options返回所有属性。
destroy销毁组件。
validate对组件内容进行验证。
isValid调用validate方法并返回类型为布尔值的验证结果。
enableValidation开启验证模式。1.3.4及以上版本支持。
disableValidation关闭验证模式。1.3.4及以上版本支持。

  validate方法用于验证组件的内容,在验证不通过的情况下,返回组件的信息,返回值是组件的对象。
  isValid方法也用于验证组件的内容,它先调用validate方法,继而返回布尔值,表示验证是否通过。
  enableValidation和disableValidation方法分别表示开启和关闭验证模式。
  
validatebox事件:

事件名称参数描述
onBeforeValidate验证前触发。1.4及以上版本支持。
onValidatevalid验证时触发。1.4及以上版本支持。。

  onBeforeValidate事件在验证前触发。
  onValidate事件在验证时触发,参数valid是布尔值,表示验证是否通过。用户在validatebox组件中每输入一个字符,都会触发本事件,并传递valid参数。以输入类型为email作为例子,用户每输入一个字符,valid参数均为false,表示不符合验证规则,直至用户输完符合email规则的最后一个字符,valid参数为true,表示验证通过。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值