用JS写一下加个onchanage事件,自己加就是了

解决方案 »

  1.   

    这问题我问过别人,给你答案,可以在onkeyup事件中加上function formatNum(s) //将数字转换成三位逗号分隔的样式
    {
      s += "";
      if (!/^(\+|-)?\d+(\.\d+)?$/.test(s)) throw(new Error(-1, 'It isn\'t Number!'));
      var a = s.match(/^(\+|-)?(\d[^\.]+)(\.\d+)?$/), b = a[2], c="";
      for (var i=b.length-3; i>-3; i=i-3) c = ","+ b.substring(i, i+3) + c;
      return(a[1] + c.substr(1) + a[3]);
    }
    alert(formatNum(-12345678.123));
    alert(formatNum("12345678.123"));
      

  2.   

    szpqq(Gavin):
    你这个方法有错误啊,调用时参数s写什么?
      

  3.   

    参数s应该是obj.value,就是你的数字域的值.
      

  4.   

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
    <title>test</title>
    <script language="JavaScript" type="text/JavaScript">
    function formatNum(s)
    {
      s += "";
      if (!/^(\+|-)?\d+(\.\d+)?$/.test(s)) {
       alert("It isn't Number!");
      }
      var a = s.match(/^(\+|-)?(\d[^\.]+)(\.\d+)?$/);
      //alert(a);
      if (s != null && s.length > 3) {
         var b = a[2];
      var c="";
      for (var i=b.length-3; i>-3; i=i-3) {
       c = ","+ b.substring(i, i+3) + c;
      }
      return(a[1] + c.substr(1) + a[3]);
      } else {
       return s;
      }}function replaceStr(str, sFnd, sRep) {
    var sTmp = "";
        var endIndex = 0;
       var beginIndex = 0;
        var len = sFnd.length;
       while (endIndex >= 0) {
         endIndex = str.indexOf(sFnd ,beginIndex);
         if (endIndex >= 0) {
           sTmp += str.substring(beginIndex, endIndex) + sRep;
            beginIndex = endIndex + len;
         }
         else if (beginIndex >= 0) {
            sTmp += str.substring(beginIndex);
           break;
         }
       }
       return sTmp;
    }function replaceCommas(str) {
    if (str == "") {
    return str;
    }
    str = replaceStr(str, ",", "");
    return str;
    }function checkNumber() {
    var str = replaceCommas(document.all.convertStr.value);
    document.all.convertStr.value = formatNum(str);
    }
    </script>
    </head>
    <body>
    <table>
          <tr> 
            <td width="50%" align="right">input string:</td>
            <td width="50%" align="left"><input type="text" name="convertStr" id="convertStr" size="50" onkeyup="checkNumber()"></td>
          <tr>
    </table> 
    </body>
    </html>
      

  5.   

    js里写onkeypress事件function formatNum(s)
    {
      s += "";
      if (!/^(\+|-)?\d+(\.\d+)?$/.test(s)) throw(new Error(-1, 'It isn\'t Number!'));
      var a = s.match(/^(\+|-)?(\d[^\.]+)(\.\d+)?$/), b = a[2], c="";
      for (var i=b.length-3; i>-3; i=i-3) c = ","+ b.substring(i, i+3) + c;
      return(a[1] + c.substr(1) + a[3]);
    }
    alert(formatNum(-12345678.123));
    alert(formatNum("12345678.123"));
      

  6.   

    用js
    价格的表达式验证
      bb = /^(0|[1-9]\d*)(\.\d{1,2})?$/;
      value.search(bb) == -1