Separar en un input con espacios en blanco cada 2 numeros introducidos

  • Autor Autor yeisler
  • Fecha de inicio Fecha de inicio
Y

yeisler

Alfa
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
hola me gustaria saber como puedo separar en un input los numeros introducidos con espacios en blanco, es decir quiero que cada 2 numeros introducidos se genere un espacio en blanco para introducir mas, si introduzco ejemplo 12 me genera espacio en blanco para seguir escribiendo si es cribo otros 2 quedaria algo asi 12 32, espero alguien me pueda ayudar gracias de antemano
 
[MENTION=174715]yeisler[/MENTION]

Insertar CODE, HTML o PHP:
<input type="text" id="numeros">
<button type="button" id="limpiar">Limpiar</button>

<script>
var numeros = document.getElementById('numeros');
var limpiar = document.getElementById('limpiar');

numeros.onkeydown = function(e){
	if (isNaN(e.key)) return false;
};

numeros.onkeyup = function(){
	numeros.value = numeros.value
		.replace(/\s/g, '')
		.replace(/([0-9]{2})/g, '$1 ');
};

limpiar.onclick = function(){
	numeros.value = '';
	numeros.focus();
};
</script>
 
Hola amigo muchas gracias por el script, aunque me queda una duda y es ¿como puedo luego borrar cada numero sin tener que darle en el boton limpiar si no con el teclado?
 
[MENTION=174715]yeisler[/MENTION]
Se me ocurre que tendrias que usar "jQuery event.which()", La propiedad which() devuelve un número entero con el código unicode de la tecla.
Detectas la tecla pulsada y si es la que tu has pensado en usar usas la función "limpiar.onclick" que te ha puesto [MENTION=36180]hugo1[/MENTION]
 
Última edición:
Puedes hacerlo de esta manera

Insertar CODE, HTML o PHP:
<input type="text" id="numeros"

<script>
// Campo numeros
var numeros = document.getElementById('numeros');

// Poner cursor en el campo numeros
numeros.focus();

numeros.onkeydown = function(e){
	// Permitir la tecla para borrar
	if (e.key == 'Backspace') return true;

	// Permitir flecha izquierda
	if (e.key == 'ArrowLeft') return true;

	// Permitir flecha derecha
	if (e.key == 'ArrowRight') return true;

	// Bloquear tecla de espacio
	if (e.key == ' ') return false;

	// Bloquear tecla si no es un numero
	if (isNaN(e.key)) return false;
};

numeros.onkeyup = function(){
	numeros.value = numeros.value
					// Borrar todos los espacios
					.replace(/\s/g, '')

					// Agregar un espacio cada dos numeros
					.replace(/([0-9]{2})/g, '$1 ')

					// Borrar espacio al final
					.trim();
};
</script>
 
Atrás
Arriba