1 function changeFourDecimal(x) { 2 var f_x = parseFloat(x); 3 if(x==""){ 4 return ""; 5 } 6 if (isNaN(x)) { 7 parent.layer.confirm("格式错误", { 8 btn : ["确定"], //按钮 9 shade : [ 0.8, '#393D49' ] 10 //不显示遮罩 11 }, function(index) { 12 parent.layer.close(index); 13 14 }); 15 return ""; 16 } 17 18 var s_x = x.toString(); 19 var pos_decimal = s_x.indexOf('.'); 20 //输入的是整数 21 if (pos_decimal < 0) { 22 //整数部分超过6位 23 if(s_x.length > 6){ 24 parent.layer.confirm("汇率过大", { 25 btn : ["确定"], //按钮 26 shade : [ 0.8, '#393D49' ] 27 //不显示遮罩 28 }, function(index) { 29 parent.layer.close(index); 30 31 }); 32 return ""; 33 } 34 //补小数点 35 pos_decimal = s_x.length; 36 s_x += '.'; 37 38 } 39 //输入的不是整数 40 if(pos_decimal> 6){ 41 parent.layer.confirm("汇率过大", { 42 btn : ["确定"], //按钮 43 shade : [ 0.8, '#393D49' ] 44 //不显示遮罩 45 }, function(index) { 46 parent.layer.close(index); 47 48 }); 49 return ""; 50 } 51 //小数部分 超过4位 取前4位 52 if (s_x.length > pos_decimal + 4) { 53 s_x = s_x.substring(0,pos_decimal+5); 54 } 55 //自动补全至小数点后四位 56 while (s_x.length <= pos_decimal + 4) { 57 s_x += '0'; 58 } 59 return s_x; 60 }
input里面 onkeyup去除非数字 onblur自动补位
onkeyup="this.value=this.value.replace(/[^\d\.]+/g,'')"
onblur="this.value=changeFourDecimal(this.value)"
方法是适用BigDecimal(6,4)的,其他的需要适当修改function