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<label> Selecciona el tipo de documento:
</label> <select name="tipodoc" id="elije" onchange="modificarTexbox()"> <option value="carnet-universitario">Carné Universitario
</option> <option value="carnet-extranjeria">Carné Extranjería
</option> <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 originalfunction modificarTexbox(){
document.getElementById("ingresar").value="";
switch(document.getElementById("elije").value) {
case "dni":
document.getElementById("ingresar").setAttribute("maxlength", "10");
break;
case "pasaporte":
document.getElementById("ingresar").setAttribute("maxlength", "8");
break;
case "carnet-universitario":
document.getElementById("ingresar").setAttribute("maxlength", "6");
break;
case "carnet-extranjeria":
document.getElementById("ingresar").setAttribute("maxlength", "4");
break;
}
}