Validform 级联逻辑验证

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" οnblur="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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值