首页 > 代码库 > 【原创】和onblur有关的 check第十列输入值是否超过第二列

【原创】和onblur有关的 check第十列输入值是否超过第二列

 问题背景:从数据库循环读取数据写在表格中,第十行填写金额,onblur时判断是否高出同行第二列,高出则报错,反之不报错。修改错误数据,信息会被擦除。

遇到的问题:第一行报错情况下,第二行填写正确信息也会擦除错误提示。

目的:只要存在错误就显示错误信息,修改错误(没有完全修改完)保留错误,完全修改完毕才能擦除错误

技术分享

 

html代码

为了良好的抓取输入框值,使用动态添加id形式,在PHP中{$key}从0开始递增。this.id返回该输入框ID。

 id="apply_{$key}" onblur="num_check(this.id)" 

 

 js代码

将错误ID存入数组,修改正确则删除数组对应元素。存在错误ID,则保留错误信息。错误数组没有信息时,才允许擦除信息。

 1 var err_arr = new Array(); 2     function arr_check(id){ 3         for(var i=0;i<err_arr.length;i++){ 4             if(id==err_arr[i]){ 5                 return true; 6             } 7         } 8         return false; 9     }10     11     var numFlag = true;12     function num_check(id) {13         14         var money = $(‘#‘+id).val();15         var numMsg = $("#numMsg");16         var publish_amount =$(‘#‘+id).parent().parent().children(‘td:nth-child(2)‘).find(‘span‘).text();17         publish_amount =  commafyback(publish_amount); //去除千分位18         if (money == ‘‘) {19             $(id).val(‘0‘);20         } else if (money > publish_amount) {21             22             if(!arr_check(id)){23                 err_arr[err_arr.length]=id;24                 numMsg.text(‘数额不能超过发行金额‘);25             }26             numFlag = false;27         } else {28             29             if(arr_check(id)){30                 err_arr.splice($.inArray(id,err_arr),1);31                 if(err_arr.length<1){32                     numMsg.text(‘‘);33                     numFlag = true;34                 }35             }36             37         }38     }

 

 

 


搞了半个小时,终于弄通了。jQuery不太会,一点一点查,惊喜还不少。

又一个原创文章,给自己赞一个~

这一定还不是最优方法,如果阅读这篇文章有兴趣的朋友可以和我讨论一下~还请赐教嘿嘿

(づ ̄3 ̄)づ╭?~

 

【原创】和onblur有关的 check第十列输入值是否超过第二列