Diferencia entre revisiones de «Usuario:Juanda/javascript/Formularios»
De WikiEducator
(→Evitar envío duplicado del formulario:) |
(→DOM y acceso al formulario) |
||
| (5 revisiones intermedias por el mismo usuario no mostrado) | |||
| Línea 13: | Línea 13: | ||
document.forms[0]; //primer formulario de la página web | document.forms[0]; //primer formulario de la página web | ||
document.forms[0].elements[0]; //elemento 0 del formulario | document.forms[0].elements[0]; //elemento 0 del formulario | ||
| − | document.forms[0].elements[document.forms[0].elements.length-1]; | + | //último elemento: |
| + | document.forms[0].elements[document.forms[0].elements.length-1]; | ||
</source> | </source> | ||
*Inconvenientes: | *Inconvenientes: | ||
| Línea 78: | Línea 79: | ||
var elementos = document.getElementsByName("pregunta"); | var elementos = document.getElementsByName("pregunta"); | ||
for(var i=0; i<elementos.length; i++) { | for(var i=0; i<elementos.length; i++) { | ||
| − | alert(" Elemento: " + elementos[i].value + "\n Seleccionado: " + elementos[i].checked); | + | alert(" Elemento: " + elementos[i].value + "\n Seleccionado: " + |
| + | elementos[i].checked); | ||
} | } | ||
</source> | </source> | ||
</div> | </div> | ||
<div class="slide"> | <div class="slide"> | ||
| + | |||
====checkbox==== | ====checkbox==== | ||
<source lang="javascript"> | <source lang="javascript"> | ||
| − | <input type="checkbox" value="condiciones" name="condiciones" id="condiciones"/> He leido y acepto las condiciones | + | <input type="checkbox" value="condiciones" name="condiciones" id="condiciones"/> |
| − | <input type="checkbox" value="privacidad" name="privacidad" id="privacidad"/> He leido la política de privacidad | + | He leido y acepto las condiciones |
| + | <input type="checkbox" value="privacidad" name="privacidad" id="privacidad"/> | ||
| + | He leido la política de privacidad | ||
..... | ..... | ||
var elemento = document.getElementById("condiciones"); | var elemento = document.getElementById("condiciones"); | ||
| − | alert(" Elemento: " + elemento.value + "\n Seleccionado: " + elemento.checked); | + | alert(" Elemento: " + elemento.value + "\n Seleccionado: " + |
| + | elemento.checked); | ||
elemento = document.getElementById("privacidad"); | elemento = document.getElementById("privacidad"); | ||
| − | alert(" Elemento: " + elemento.value + "\n Seleccionado: " + elemento.checked); | + | alert(" Elemento: " + elemento.value + "\n Seleccionado: " + |
| + | elemento.checked); | ||
</source> | </source> | ||
</div> | </div> | ||
| Línea 111: | Línea 118: | ||
var indiceSeleccionado = lista.selectedIndex; | var indiceSeleccionado = lista.selectedIndex; | ||
// Con el índice y el array "options", obtener la opción seleccionada | // Con el índice y el array "options", obtener la opción seleccionada | ||
| − | var opcionSeleccionada = lista.options[indiceSeleccionado]; //se podría añadir aquí el .text o .value!!! | + | var opcionSeleccionada = lista.options[indiceSeleccionado]; |
| + | //se podría añadir aquí el .text o .value!!! | ||
// Obtener el valor y el texto de la opción seleccionada | // Obtener el valor y el texto de la opción seleccionada | ||
| Línea 117: | Línea 125: | ||
var valorSeleccionado = opcionSeleccionada.value; | var valorSeleccionado = opcionSeleccionada.value; | ||
| − | alert("Opción seleccionada: " + textoSeleccionado + "\n Valor de la opción: " + valorSeleccionado); | + | alert("Opción seleccionada: " + textoSeleccionado + "\n Valor de la opción: " |
| + | + valorSeleccionado); | ||
</source> | </source> | ||
</div> | </div> | ||
<div class="slide"> | <div class="slide"> | ||
| + | |||
===Otras operaciones=== | ===Otras operaciones=== | ||
====Asignar el foco en el formulario==== | ====Asignar el foco en el formulario==== | ||
| Línea 143: | Línea 153: | ||
<form id="formulario" action="#"> | <form id="formulario" action="#"> | ||
.... | .... | ||
| − | <input type="button" value="Enviar" onclick="this.disabled=true; this.value=’Enviando...’; this.form.submit()" /> | + | <input type="button" value="Enviar" onclick="this.disabled=true; |
| + | this.value=’Enviando...’; this.form.submit()" /> | ||
</form> | </form> | ||
</source> | </source> | ||
| Línea 149: | Línea 160: | ||
<div class="slide"> | <div class="slide"> | ||
| − | ==== ==== | + | ====Limitar el número de caracteres de un textarea ==== |
| + | *En algunos eventos (como onkeypress, onclick y onsubmit) se puede evitar su comportamiento normal si se devuelve el valor false. | ||
| + | *textarea no tiene la propiedad maxlength | ||
<source lang="javascript"> | <source lang="javascript"> | ||
| − | + | function limita(maximoCaracteres) { | |
| + | var elemento = document.getElementById("texto"); | ||
| + | if(elemento.value.length >= maximoCaracteres ) { | ||
| + | return false; | ||
| + | } | ||
| + | else { | ||
| + | return true; | ||
| + | } | ||
| + | } | ||
| + | <textarea id="texto" onkeypress="return limita(100);"></textarea> | ||
</source> | </source> | ||
</div> | </div> | ||
<div class="slide"> | <div class="slide"> | ||
| − | ==== ==== | + | ====Validar que los elementos de un checkbox estén seleccionados ==== |
<source lang="javascript"> | <source lang="javascript"> | ||
| + | formulario = document.getElementById("formulario"); | ||
| + | for(var i=0; i<formulario.elements.length; i++) { | ||
| + | var elemento = formulario.elements[i]; | ||
| + | if(elemento.type == "checkbox") { | ||
| + | if(!elemento.checked) { | ||
| + | return false; | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | </source> | ||
| + | </div> | ||
| + | <div class="slide"> | ||
| + | ====Comprobar que se haya seleccionado al menos una opción en un radiobutton ==== | ||
| + | <source lang="javascript"> | ||
| + | opciones = document.getElementsByName("opciones"); | ||
| + | |||
| + | var seleccionado = false; | ||
| + | for(var i=0; i<opciones.length; i++) { | ||
| + | if(opciones[i].checked) { | ||
| + | seleccionado = true; | ||
| + | break; | ||
| + | } | ||
| + | } | ||
| + | |||
| + | if(!seleccionado) { | ||
| + | return false; | ||
| + | } | ||
</source> | </source> | ||
</div> | </div> | ||
</div> | </div> | ||
Última revisión de 19:30 14 oct 2012