我在测试充值接口的时候,输入金额保留到小数点后三位的时候程序就报错,后来就想到充值金额最多只能保留到小数点后两位,下面就是我用JQuery实现的详细代码,仅供参考,大神勿喷
1 $(function() { 2 //阻止数字键以外的按键输入 3 $("#zf_money").keydown(function(e) { 4 digitInput($(this),e); 5 }); 6 $("#zf_money").keyup(function() { 7 if($(this).val()=="") { 8 $("#zfz_money").text("0"); 9 } else { 10 $("#zfz_money").text($(this).val()); 11 } 12 13 }); 14 15 function prevent(e) { 16 e.preventDefault?e.preventDefault():e.returnValue=false; 17 }; 18 19 function digitInput(el,e) { 20 var e=e||window.event; // FF、Chrome IE下获取事件对象 21 var c=e.charCode||e.keyCode; //FF、Chrome IE下获取键盘码 22 var val=el.val(); 23 if(c==110||c==190) { // 110 (190) - 小(主)键盘上的点 24 (val.indexOf(".")>=0||!val.length)&&prevent(e); // 已有小数点或者文本框为空,不允许输入点 25 26 } else if((c!=8&&c!=46&& // 8 - Backspace, 46 - Delete 27 (c<37||c>40)&& // 37 (38) (39) (40) - Left (Up) (Right) (Down) Arrow 28 (c<48||c>57)&& // 48~57 - 主键盘上的0~9 29 (c<96||c>105)) // 96~105 - 小键盘的0~9 30 ||e.shiftKey) { // Shift键,对应的code为16 31 prevent(e); // 阻止事件传播到keypress 32 } else if(c!=8&&c!=46&&val.indexOf(".")>=0) { 33 (val.substring(val.indexOf(".")+1).length)>1&&prevent(e); 34 } else if(c!=8&&c!=46&&val.length>5) { 35 prevent(e); 36 } 37 }; 38 });