Es solo para enteros?, o tambien puede haber valores del tipo
1.000,32 
Para enteros esto te podría servir   
Código HTML:
Ver original<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <script type="text/javascript"> //<![CDATA[
function valida_envia(){ 
      //valido el numero 
      var num = document.getElementById('numero');   
      if (num.value.length==0){ 
             alert("Tiene que escribir un valor") 
             num.focus() 
             return 0; 
      } else{
      
     var n=num.value.replace(/\./g,"");
      alert(n);
      num.value = n;
      }
}
 
function formatear(input){
var num = input.value.replace(/\./g,'');
if(!isNaN(num)){
num = num.toString().split('').reverse().join('').replace(/(?=\d*\.?)(\d{3})/g,'$1.');
num = num.split('').reverse().join('').replace(/^[\.]/,'');
input.value = num;
}else{
input.value = input.value.replace(/[^\d\.]*/g,'');
}
}
 
//]]>
<form id="fvalida" action="#" onsubmit="valida_envia();"> <input type="text" onkeyup="formatear(this)" onchange="formatear(this)" name="numero" id="numero" /> <input type="submit" value="Enviar" />  
  
saludos