Foros del Web » Programando para Internet » Javascript »

Cambiar el maxlength de un input en base al valor de un select

Estas en el tema de Cambiar el maxlength de un input en base al valor de un select en el foro de Javascript en Foros del Web. Tengo un select que tiene varios option, lo que quiero hacer es que en base al valor del select pueda cambiar el maxlength de un ...
  #1 (permalink)  
Antiguo 29/01/2013, 11:07
 
Fecha de Ingreso: octubre-2008
Ubicación: Santiago de Surco - Lima - Peru
Mensajes: 39
Antigüedad: 15 años, 6 meses
Puntos: 1
Pregunta Cambiar el maxlength de un input en base al valor de un select

Tengo un select que tiene varios option, lo que quiero hacer es que en base al valor del select pueda cambiar el maxlength de un input, este es el codigo que estaba haciendo en javascript

Código:
function modificarTexbox(){
	switch(document.getElementById("elije").value) {
		case "dni":
			document.getElementById("cantidad").maxLength=8;
		break;
		case "pasaporte":
			document.getElementById("cantidad").maxLength=10;
		break;
	}
}
y en el select ponia

Código:
<label> Selecciona el tipo de documento:&nbsp;</label>
	    <select name="tipodoc" id="elije" onfocus="modificarTexbox()">  
        <option value="dni">DNI</option> 
		<option value="pasaporte">Pasaporte</option>
        <option value="carnet universitario">Carné Universitario</option>
        <option value="carnet extranjeria">Carné Extranjería</option>
</select>
pero no se que anda mal que solo agarra el primer valor y cuando selecciono el segundo option sigue con el maxlength del primero
  #2 (permalink)  
Antiguo 29/01/2013, 11:18
Avatar de ipraetoriux  
Fecha de Ingreso: abril-2010
Ubicación: ipraetoriux.com
Mensajes: 1.125
Antigüedad: 14 años
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. }
  #3 (permalink)  
Antiguo 29/01/2013, 11:29
 
Fecha de Ingreso: octubre-2008
Ubicación: Santiago de Surco - Lima - Peru
Mensajes: 39
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Cambiar el maxlength de un input en base al valor de un select

Muchas gracias por tu respuesta, exactamente si es lo que buscaba, estaba en el camino correcto, ahora tengo un inconveniente lo que sucede es que apenas carga la pagina sale que el valor del select es DNI entonces no tengo necesidad de hacer un onchange por ende el input text se queda sin maxlenght, necesariamente tengo que cambiar el valor del select?? Gracias
  #4 (permalink)  
Antiguo 29/01/2013, 11:47
Avatar de ipraetoriux  
Fecha de Ingreso: abril-2010
Ubicación: ipraetoriux.com
Mensajes: 1.125
Antigüedad: 14 años
Puntos: 155
Respuesta: Cambiar el maxlength de un input en base al valor de un select

Si al cargar la pagina, el primer option en el select es DNI, deja por default en el input text el maxlength para la opcion DNI.

Pero, en caso que se seleccione otro option, el maxlength cambiará, y si regreso de nuevo al option DNI, es necesario indicar el maxlenght para DNI, entonces como te escribi en la funcion, se carga nuevamente el maxlenght de DNI, en caso que anteriormente se haya modificado, me explico?

Etiquetas: input, select, valor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:19.