js 数字输入控制,保留两位小数

 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 
 3 <html xmlns="http://www.w3.org/1999/xhtml" >
 4 <head>
 5     <title>单据冲账金额分配</title>
 6     
 7     <style type="text/css">
 8         tr{line-height:50px;}
 9         td{background-Color:#EFEEDF;}
10         .lab_border{border:1px solid red;}
11         .lab_color{color:red;}
12         .lab_color2{color:red;}
13     </style>
14     <script src="http://www.cnblogs.com/scripts/jquery.js" type="text/javascript" ></script>
15     <script type="text/javascript">
16         //初始化为0
17         $(function (){
18             $("#RepayNum").val("0");
19             show();
20         });
21                
22         
23         function show()
24         {
25             var ErrMsg="";
26             var fee = $("#Fee").text();
27             var RepayNum = $("#RepayNum").val();
28             
29             //判断是否为数字
30             if (isNaN(RepayNum)){
31                 ErrMsg = "非法金额!";
32             }else{
33                 //输入数字不能大于2位小数
34                 if(!RepayNum.match(/^\d*\.?\d{0,2}$/)){
35                    $("#RepayNum").val(changeTwoDecimal(RepayNum));
36                    RepayNum = $("#RepayNum").val();
37                 }
38                 //判断数字范围
39                 if(RepayNum>Number(fee))
40                     ErrMsg = "冲账金额不能大于本单据总金额";
41                 else
42                     ErrMsg = "";
43             }
44             
45             //根据是否有错误选择样式
46             if(ErrMsg!=""){
47                 $("#PayNum").addClass("lab_color").text("Error");
48                 $("#RepayNum").addClass("lab_border");
49                 $("#RepayNum").focus();
50             }else{
51                 $("#RepayNum").removeClass("lab_border");
52                 $("#PayNum").removeClass("lab_color").text(changeTwoDecimal(fee-RepayNum));
53             }
54             $("#showE").text(ErrMsg)
55         }
56         //传入一多位小数,四舍五入之后保留两位小数
57         function changeTwoDecimal(x)
58         {
59             var f_x = parseFloat(x);
60             if (isNaN(f_x))
61             {
62                 alert('function:changeTwoDecimal->parameter error');
63                 return false;
64             }
65             f_x = Math.round(f_x *100)/100;
66 
67             return f_x;
68         }
69     </script>
70 </head>
71 <body>
72     <form id="form1">
73         <table width="100%">
74             <tr>
75                 <td style="text-align:right;">单据总金额:</td>
76                 <td><label id="Fee">123456</label></td>
77                 <td colspan="2"><label id="showE" style="color:Red"></label></td>
78             </tr>
79             <tr>
80                 <td style="text-align:right; width:25%">冲账金额:</td>
81                 <td style=" width:25%"><input type="text" id="RepayNum"  style="width:65px; " value="0" maxlength="10" onkeyup="show()"/></td>
82                 <td style="text-align:right; width:25%">付款金额:</td>
83                 <td style=" width:25%"><label id="PayNum">123456</label></td>
84             </tr>
85         </table>
86     </form>
87 </body>
88 </html>

 

posted @ 2012-08-23 09:54  notnull  阅读(702)  评论(0编辑  收藏  举报