Ver Mensaje Individual
  #2 (permalink)  
Antiguo 29/01/2013, 11:18
Avatar de ipraetoriux
ipraetoriux
 
Fecha de Ingreso: abril-2010
Ubicación: ipraetoriux.com
Mensajes: 1.125
Antigüedad: 14 años, 10 meses
Puntos: 155
Respuesta: Cambiar el maxlength de un input en base al valor de un select

Muy bien podrias hacerlo de la siguiente forma

En el select usas "onchange" en lugar de "onfocus", y el value de cada option, te recomiendo que no dejes espacios en blanco.
Código HTML:
Ver original
  1. <label> Selecciona el tipo de documento:&nbsp;</label>
  2.     <select name="tipodoc" id="elije" onchange="modificarTexbox()">  
  3.         <option value="dni">DNI</option>
  4.         <option value="pasaporte">Pasaporte</option>
  5.         <option value="carnet-universitario">Carné Universitario</option>
  6.         <option value="carnet-extranjeria">Carné Extranjería</option>
  7.     </select>
  8.     <input type="text" name="ingresar" id="ingresar" value="" maxlength="10" />

Una vez llamada la funcion, vacias el input ingresar, ya que como cambiaria de maxlength, no tiene sentido dejar texto viejo ahi escrito. Luego segun el valor del option pasado a la funcion "modificarTexbox" usas el metodo setAttribute para modificar el maxlength del input text. El segundo argumento del metodo setAttribute indica el nuevo valor para el maxlength, pueden cambiar ahi segun lo que necesites.

Código Javascript:
Ver original
  1. function modificarTexbox(){
  2.     document.getElementById("ingresar").value="";
  3.     switch(document.getElementById("elije").value) {
  4.         case "dni":        
  5.             document.getElementById("ingresar").setAttribute("maxlength", "10");
  6.         break;
  7.         case "pasaporte":
  8.             document.getElementById("ingresar").setAttribute("maxlength", "8");
  9.         break;
  10.         case "carnet-universitario":
  11.             document.getElementById("ingresar").setAttribute("maxlength", "6");
  12.         break;
  13.         case "carnet-extranjeria":
  14.             document.getElementById("ingresar").setAttribute("maxlength", "4");
  15.         break;
  16.     }
  17. }