Ver Mensaje Individual
  #4 (permalink)  
Antiguo 04/10/2013, 13:21
waspeis
 
Fecha de Ingreso: julio-2013
Mensajes: 44
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: No permitir escribir más de un espacio

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 original
  1. function enter()
  2.     {
  3.         // Si pulso la tecla Enter
  4.         if(event.keyCode==13)
  5.         {
  6.             if(cantidad.value=="" || concepto.value=="" || total.value=="")
  7.                 alert("Rellene los campos Cantidad, Concepto y Total");
  8.             // Si hay espacios al princio o al final o varios espacios seguidos
  9.             else if((concepto.value[0] == ' ' || concepto.value[concepto.value.length-1] == ' ') || concepto.value.match(/\s\s/))
  10.             {
  11.                 concepto.value = concepto.value.trim();
  12.                 while(concepto.value.match(/\s\s/)) concepto.value = concepto.value.replace('  ', ' ');
  13.                 añadir(); // Llamada a la función añadir()
  14.             }
  15.             else
  16.                 añadir(); // Llamada a la función añadir
  17.         }
  18.     }

Código HTML:
Ver original
  1. <input type=text name=cantidad id=cantidad size=1>
  2. <input type=text name=concepto id=concepto size=30 maxlength=27>
  3. <input type=text name=total id=total onkeypress=enter() size=2>

Muchas gracias a los dos!