Ver Mensaje Individual
  #4 (permalink)  
Antiguo 18/06/2009, 10:43
Avatar de hvelasco
hvelasco
 
Fecha de Ingreso: mayo-2006
Mensajes: 25
Antigüedad: 18 años, 6 meses
Puntos: 0
Respuesta: cambiar maxlength en tiempo de ejecucion

Hola yo también queria hacer lo mismo pero de la forma fácil y como se supone que debería de funcionar de la siguiente forma
Código:
document.micampo.maxlength=10;
pero no.


Asi que me se me ocurrio la siguiente solución:

Código HTML:
<script language='javascript'>
/*
* campo <recibe el campo que le afectará el maxlength>
* id <id del span (en mi caso usé un span puede ser cualquier otra etiqueta)>
* tamano <valor del maxlength que tendrá el campo que especifiquemos>
*/
function cambiaMaxLength(campo,id,tamano)
{
	var valor = campo.value;//guardamos temporalmente el value del campo para que el valor que hayamos escrito no se borre.
	var nombreCampo = campo.name;//obtenemos el nombre del campo.
	
	if(valor.length>tamano)//si el tamaño de la cadena que sacamos es mayor al maxlength que especificamos, recorta la cadena.
		valor = valor.substring(0,tamano);
	
	//reemplaza el campo por el nuevo con el maxlegth especificado
	document.getElementById(id).innerHTML = "<input type='text' name='"+nombreCampo+"' maxlength='"+tamano+"' value='"+valor+"' style='width:60px;' />";
	
}
</script>

<form name="form1">
<span id="idmicampo"><input type="text" name="micampo" maxlength="9" value="123456789" /></span>
	<input type="button" value="Cambiar" onclick="cambiaMaxLength(document.form1.micampo,'idmicampo',5);" />
</form> 
Se aceptan sugerencias o mejoras, saludos