Autor Tema: JavaScriptscript recorrer todos los input de un form set y getattribute CU01176E  (Leído 4801 veces)

Dimitar Stefanov

  • Experto
  • *****
  • Mensajes: 598
    • Ver Perfil
Buenas tardes. Os dejo una posible solución del ejercicio CU01176E del curso JavaScript desde cero.

Citar
Dado el siguiente código HTML:

Código: [Seleccionar]
<!DOCTYPE html>

<html><head><title>Ejemplo aprenderaprogramar.com</title><meta charset="utf-8">

<style type="text/css"> label{display:block;margin:5px;}</style>

</head>

<body><div id="cabecera"><h2>Cursos aprenderaprogramar.com</h2><h3>Ejemplos JavaScript</h3></div>

<div style="color:blue; margin:20px;" id ="ejemplo">Pulsa aquí</div>

<form name ="formularioContacto" method="get" action="accion1.html">

<h2>Formulario de contacto</h2>

<label>Nombre:<input id="nombreFormContacto" type="text" name="nombre" maxlength="4"/></label>

<label>Apellidos:<input id="apellidosFormContacto" type="text" name="apellidos" /></label>

<label><input id ="botonEnvio1" type="submit" value="Enviar"></label>

</form>

<form name ="formularioReclamacion" method="get" action="accion2.html">

<h2>Formulario de reclamación</h2>

<label>Motivo reclamación:<input id="motivoFormReclama" type="text" name="motivo" /></label>

<label>Fecha del hecho:<input id="fechaFormReclama" type="text" name="fecha" /></label>

<label><input id="botonEnvio2" type="submit" value="Enviar"></label>

</form>

</body>
</html>

Citar
Crea un script que recorra todos los elementos input dentro de cada uno de los formularios presentes y si son de tipo text, modifique su atributo asociado maxlength usando el método setAttribute de los objetos tipo Element para limitar a 8 el número máximo de caracteres que pueda introducir el usuario. Una vez modificado el atributo, muestra por pantalla el valor que tiene dicho atributo para todos los elementos de tipo input usando el método getAttribute.

Y el código modificado según los requisitos del ejercicio:

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Ejemplo aprenderaprogramar.com</title>
<style type="text/css">
label{
display: block;
margin: 5px;
}
</style>
<script type="text/javascript">

var formularios;

window.onload = function(){
formularios = document.forms;
document.getElementById('ejemplo').addEventListener('click',comprobar);
}

function comprobar(){
var msg = '';
for(var i=0;i<formularios.length;i++){
for(var j=0;j<formularios[i].elements.length;j++){
if(formularios[i].elements[j].type == 'text'){
formularios[i].elements[j].setAttribute('maxlength',8);
msg = msg+'El elemento con id: '+formularios[i].elements[j].id+' tiene atributo maxlength modificado en: '+formularios[i].elements[j].getAttribute('maxlength')+'\n\n';
}
}
}
alert(msg);
}

</script>
</head>
<body>
<div id="cabecera">
<h2>Cursos aprenderaprogramar.com</h2>
<h3>Ejemplos JavaScript</h3>
</div>
<div id="ejemplo" style="color: blue; margin: 20px;">Pulsa aquí</div>
<form action="accion1.html" method="get" name="formularioContacto">
<h2>Formulario de contacto</h2>
<label>Nombre:<input type="text" name="nombre" id="nombreFormContacto" maxlength="4"></label>
<label>Apellidos:<input type="text" name="apellidos" id="apellidosFormContacto"></label>
<label><input type="submit" value="Enviar" id="botonEnvio1"></label>
</form>
<form action="accion2.html" name="formularioReclamacion" method="get">
<h2>Formulario de reclamación</h2>
<label>Motivo reclamación:<input type="text" name="motivo" id="motivoFormReclama"></label>
<label>Fecha del hecho:<input type="text" name="fecha" id="fechaFormReclama"></label>
<label><input type="submit" value="Enviar" id="botonEnvio2"></label>
</form>
</body>
</html>

Gracias
« Última modificación: 23 de Abril 2016, 20:58 por César Krall »

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Re:CU01176E setattribute y getattribute en JavaScript
« Respuesta #1 en: 21 de Abril 2016, 22:26 »
Hola dimiste.

El ejercicio hace lo que pide el enunciado.

Por comentarte algo, se podría evitar el uso de de la variable formularios con ámbito global. Ya que en este caso no es algo que necesitemos como tal, habría que quitar estas dos líneas:

Código: [Seleccionar]
var formularios;y esta otra que está dentro de window.onload:
Código: [Seleccionar]
formularios = document.forms;
y añadiendo esta dentro de la función comprobar()

Código: [Seleccionar]
var formularios = document.forms;
Saludos.

 ;D

Dimitar Stefanov

  • Experto
  • *****
  • Mensajes: 598
    • Ver Perfil
Re:CU01176E setattribute y getattribute en JavaScript
« Respuesta #2 en: 22 de Abril 2016, 12:19 »
Buenas tardes, Pedro.

Gracias por el tiempo dedicado y por corregirme el ejercicio.

Tienes razón, código corregido.

Atentamente,

dimiste :)

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".