我想要的是输入数字的同时添加千位分隔符,不是失去焦点的那种?
Ajax控件可以实现吗?哪个控件?

解决方案 »

  1.   

    <script> 
    function cc(s){ 
    if(/[^0-9\.]/.test(s)) return "invalid value"; 
    s=s.replace(/^(\d*)$/,"$1."); 
    s=(s+"00").replace(/(\d*\.\d\d)\d*/,"$1"); 
    s=s.replace(".",","); 
    var re=/(\d)(\d{3},)/; 
    while(re.test(s)) 
    s=s.replace(re,"$1,$2"); 
    s=s.replace(/,(\d\d)$/,".$1"); 
    return  s.replace(/^\./,"0.") 

    </script> 使用:
    <input onchange="this.value=cc(this.value)"> 
    不把 代码复制到的 页面上,运行起来看看效果就晓得了。
      

  2.   

    这个是 JS代码,你和用的 VS05 或者是 VS08,VS03没任何关系。
      

  3.   

    // JScript 文件
    function sunhehe(num)
        {
        if(num==0)
        {
        num="";
        }
        var a = num;
    a   =   a.replace(/[^0-9.]/g ,"");   
    a   =   a.replace(/(^[\\s]*)|([\\s]*$)/g,"");   
      if(   a   !=""   &&   !isNaN(   a   )   )   
      {//如果是数字   
              a   =   Number(   a   )   
      }       return a;
      }  
      
    function outputMoney(number) 
    {   
    if(number=="")
    {
    number="0";
    return number;
    }if(number=="0")
    {
    number="0";
    return number;
    }if(number==0)
    {
    number="0";
    return number;
    }if(isNaN(number)) 

    alert(number+"不是数字"); 
    return number;
    }
      number=number.replace(/\,/g,"");   if(number<0) 
      return '-'+outputDollars(Math.floor(Math.abs(number)-0) + '') + outputCents(Math.abs(number) - 0); 
      else 
      return outputDollars(Math.floor(number-0) + '') + outputCents(number - 0); 

    function outputDollars(number) 

      if (number.length<= 3) 
      return (number == '' ? '0' : number); 
      else 
      { 
        var mod = number.length%3; 
        var output = (mod == 0 ? '' : (number.substring(0,mod))); 
        for (i=0 ; i< Math.floor(number.length/3) ; i++) 
        { 
          if ((mod ==0) && (i ==0)) 
          output+= number.substring(mod+3*i,mod+3*i+3); 
          else 
          output+= ',' + number.substring(mod+3*i,mod+3*i+3); 
        } 
        return (output); 
      } 

    function outputCents(amount) 

      amount = Math.round( ( (amount) - Math.floor(amount) ) *100); 
      return (amount<10 ? '.0' + amount : '.' + amount); 
    }
    /*************/
    //function document.onkeydown()               
    //{
    //        if(event.keyCode==13)
    //        {
    //                event.keyCode = 9;
    //        }
    //}
     <asp:TextBox ID="cwbg" runat="server" Width="250px" onblur="this.value=outputMoney(this.value)" onfocus="this.value=sunhehe(this.value)">0</asp:TextBox>
      

  4.   

    function onKeyPrice(t)
                {
                   var stmp = "";
                   if(t.value==stmp) return;
                   var ms = t.value.replace(/[^\d\.]/g,"").replace(/(\.\d{2}).+$/,"$1").replace(/^0+([1-9])/,"$1").replace(/^0+$/,"0");
                   var txt = ms.split(".");
                   while(/\d{4}(,|$)/.test(txt[0]))
                     txt[0] = txt[0].replace(/(\d)(\d{3}(,|$))/,"$1,$2");
                   t.value = stmp = txt[0]+(txt.length>1?"."+txt[1]:"");
                }<input type="text" onkeyup="onKeyPrice(this);" />