Gracias por vuestra ayuda.
Al final lo hago todo en el evento onkeypress(). Me explico. En la aplicación hay 3 input type text. El primero para la
cantidad, el segundo es el
concepto y el tercero el
total. Se van introduciento conceptos y se van agregando como opciones a un select.
En el evento onkeyup() del input type text
concepto, cada vez que suelto una tecla se ejecuta el método replace(). Está bien porque si introduzco dos espacios me quita uno, pero si dejo pulsada la barra espaciadora se escriben varios espacios. Además si quiero desplazarme hacia detrás o delante con las teclas de dirección el cursor siempre se queda al final debido a la asignación input.value=input.value.replace(' ',' '). Supongo que tendrá solución pero he optado por hacerlo todo en el onkeypress() del input type text
total y ha quedado bien.
Código Javascript
:
Ver originalfunction enter()
{
// Si pulso la tecla Enter
if(event.keyCode==13)
{
if(cantidad.value=="" || concepto.value=="" || total.value=="")
alert("Rellene los campos Cantidad, Concepto y Total");
// Si hay espacios al princio o al final o varios espacios seguidos
else if((concepto.value[0] == ' ' || concepto.value[concepto.value.length-1] == ' ') || concepto.value.match(/\s\s/))
{
concepto.value = concepto.value.trim();
while(concepto.value.match(/\s\s/)) concepto.value = concepto.value.replace(' ', ' ');
añadir(); // Llamada a la función añadir()
}
else
añadir(); // Llamada a la función añadir
}
}
Código HTML:
Ver original<input type=text name=cantidad id=cantidad size=1> <input type=text name=concepto id=concepto size=30 maxlength=27> <input type=text name=total id=total onkeypress=enter() size=2>
Muchas gracias a los dos!