好久没有写前台了,项目现在是这个需要,就用了jquery validate控件
html代码如下:
<th><label for="amountRangeStart">发生额</label></th>
<td>
<s:textfield name="search.amountRangeStart" size="10" id="amountRangeStart" />--
<s:textfield name="search.amountRangeEnd" size="10" id="amountRangeEnd"/>
<span id="amountRangeCheckHf"></span>
</td>
jquery代码:
/**
* 数据校验
*/
$(function (){
jQuery.validator.addMethod("amountLimit", function(value, element) {
var returnVal = false;
var amountStart = $("#amountRangeStart").val();
var amountEnd = $("#amountRangeEnd").val();
if(parseFloat(amountEnd)>parseFloat(amountStart)){
returnVal = true;
}
return returnVal;
},"结束金额必须大于开始金额");
$("#cxtj_form").validate({
rules:{
'search.amountRangeStart':{ maxlength: 16,number:true},
'search.amountRangeEnd': { maxlength: 16,number:true,amountLimit:true }
},
messages:{
"search.amountRangeStart": {number:"请输入正确的金额"},
"search.amountRangeEnd":{number:"请输入正确的金额"}
}
});
});
这样写好像大体上能满足要求,但是我前面是自己写了函数,但是一直时灵时不灵,不知道哪儿出了问题:
$(function (){
$("#amountRangeStart").on("keyup",function(){
var valid = /^\d{0,}(\.\d+)?$/i.test(this.value),val = this.value;
if(!valid){
$("#tradeAmtCheckHf").text( "起始金额输入只能是数字" );
$( "#tradeAmtCheckHf" ).css({"color": "red"});
}else{
$("#tradeAmtCheckHf").text("");
}
});
$("#amountRangeEnd").on("keyup",function(){
var valid = /^\d{0,}(\.\d+)?$/i.test(this.value),val = this.value;
if(!valid){
$("#tradeAmtCheckHf").text( "起始金额输入只能是数字" );
$( "#tradeAmtCheckHf" ).css({"color": "red"});
}else{
$("#tradeAmtCheckHf").text("");
}
var tradeAmt_start = $("#amountRangeStart").val();
var tradeAmt_end = $("#amountRangeEnd").val();
if(tradeAmt_start>tradeAmt_end){
$("#tradeAmtCheckHf").text( "结束金额必须大于开始金额" );
$( "#tradeAmtCheckHf" ).css({"color": "red"});
}else{
$("#tradeAmtCheckHf").text("");
}
});
});
希望各位能人志士帮我解惑。。。。
来源:CSDN
作者:红茶爱绿花
链接:https://blog.csdn.net/hongtea1234/article/details/51944062