miniui是一个组件库,表单验证也有许多自带的验证方式
<input id="laborMoney" name="laborMoney" vtype="float" onvalidation="onvalidation" required="true" class="mini-textbox" style="font-size: 10px;width:120px;" />
这个input框的验证有一个vtype=“float” ,就是只能输入浮点型数字,当然也可以自定义验证方式,onvalidation="onvalidation"这个就是我自己定义的验证方式,但是我发现在自带的验证和自定义的验证共存的时候自定义的会无效,解决方案如下
//换表费用计算
function onvalidation(e) {
if (e.isValid){
if (reg(e.value)==false){
e.isValid = false;
e.errorText = "金额精确到分,即两位小数"
}
}
var dataMoney = parseFloat(mini.get('dataMoney').getValue());
var laborMoney = parseFloat(mini.get('laborMoney').getValue());
var installMoney = parseFloat(mini.get('installMoney').getValue());
if (isNaN(dataMoney) || isNaN(installMoney) || isNaN(laborMoney)) return;
var chargeMoney = (dataMoney + laborMoney + installMoney).toFixed(2);
mini.get('chargeMoney').setValue(chargeMoney);
}
//金额验证
function reg(value) {
var reg = /^(([1-9][0-9]*)|(([0]\.\d{1,2}|[1-9][0-9]*\.\d{1,2})))$/;
if (reg.test(value)==true){
return true;
}
return false;
}
这个组合验证就是先去验证自带的vtype=“float”,如果验证通过就去验证自定义的验证方式,自定义的验证方式不通过则去改变验证结果及errorText 提示信息,我这边的验证大概就是如果输入的不是数字就提示"只能输入数字",如果输入的是数字,但是小数点位超过两位数也不能验证通过,自定义的验证函数可以自己根据自己的需求去定义.