Validform 级联逻辑验证

来源:互联网 发布:mac book pro2017测评 编辑:程序博客网 时间:2024/05/16 18:37

Validform  的datatype里是无法写函数的,所以要用Validform的datatape是无法完成的。但是不写函数又无法完成逻辑的判断,咱先写好逻辑判断:

function priceCom(){var max_price=document.getElementsByName("max_price")[0].value*100;var min_price=document.getElementsByName("min_price")[0].value*100;var price=document.getElementsByName("price")[0].value*100;var sup_price=document.getElementsByName("sup_price")[0].value*100;if(max_price<min_price){$("#min_price").next("span").addClass("Validform_wrong");$("#min_price").next("span").text("最低销售价应小于最高销售价");return false;}if(max_price<price){$("#price").next("span").addClass("Validform_wrong");$("#price").next("span").text("销售价应小于最高销售价");        return false;}if(price<min_price){$("#price").next("span").addClass("Validform_wrong");$("#price").next("span").text("销售价应大于最低销售价");        return false;}    if(min_price<sup_price){    $("#sup_price").next("span").addClass("Validform_wrong");   $("#sup_price").next("span").text("供货价应小于最低销售价");        return false;    }return true;}

datatype 里写不了函数,就写在事件里面

<tr>        <td class="label"><label for="title">销售价:</label></td><td><input name="price" id="price" class="ipt20" value="${ctx.out.price}" datatype="*1-12" onblur="priceCom()" maxlength="12" /></td></tr>

好了,解决完了。顺手附上点点相关资料

  • datatype
    内置基本的datatype类型有:
  • * | *6-16 | n | n6-16 | s | s6-18 | p | m | e | url
    *:检测是否有输入,可以输入任何字符,不留空即可通过验证;
    *6-16:检测是否为6到16位任意字符;
    n:数字类型;
    n6-16:6到16位数字;
    s:字符串类型;
    s6-18:6到18位字符串;
    p:验证是否为邮政编码;
    m:手机号码格式;
    e:email格式;
    url:验证字符串是否为网址。
    自定义datatype的名称,可以由字母、数字、下划线、中划线和*号组成。
    形如"*6-16"的datatype,Validform会自动扩展,可以指定任意的数值范围。如内置基本类型有"*6-16",那么你绑定datatype="*4-12"就表示4到12位任意字符。如果你自定义了一个datatype="zh2-4",表示2到4位中文字符,那么datatype="zh2-6"就表示2到6位中文字符。
    5.2版本之后,datatype支持规则累加或单选。用","分隔表示规则累加;用"|"分隔表示规则多选一,即只要符合其中一个规则就可以通过验证,绑定的规则会依次验证,只要验证通过,后面的规则就会忽略不再比较。如绑定datatype="m|e",表示既可以填写手机号码,也能填写邮箱地址,如果知道填入的是手机号码,那么就不会再检测他是不是邮箱地址;datatype="zh,s2-4",表示要符合自定义类型"zh",也要符合规则"s2-4"。
    注: 
    5.2.1版本之后,datatype支持:
    直接绑定正则:如可用这样写datatype="/\w{3,6}/i",要求是3到6位的字母,不区分大小写;
    支持简单的逻辑运算:如datatype="m | e, *4-18 | /\w{3,6}/i | /^validform\.rjboy\.cn$/",
    这个表达式的意思是:可以是手机号码;或者是邮箱地址,但字符长度必须在4到18位;或者是3到6位的字母,不区分大小写;或者输入validform.rjboy.cn,区分大小写。这里","分隔相当于逻辑运算里的"&&"; "|"分隔相当于逻辑运算里的"||";不支持括号运算。

0 0