Manual Completo Formularios Javascript

42
  Índice 1. El objeto form, propiedades y métodos [http://www.desarrolloweb.com/articulos/1375.php?manual=50]  1.1 El objeto form 1.2 Propiedades principales del objeto form 1.2.1 Sintaxis básica 1.3 Métodos del objeto form 1.3.1 Sintaxis básica 1.4 Ejemplo de aplicación  Método POST Método GET 2. Sub-propiedades del objeto form y eventos [http://www.desarrolloweb.com/articulos/1376.php ?manual=50]  2.1 Sub-propiedades del objeto form 2.1.1 Sintaxis básica 2.2 Ejemplos de aplicación  Length Index 2.3 Los eventos que admite el objeto form 2.3.1 Sintaxis básica 2.4 Ejemplos de aplicación   Alerta al enviar y/o restablec er un formulario 3. Valores de la propiedad action [http://www.desarrolloweb.com/articulos/1377.php?manual=50]  3.1 Ejemplos de aplicación  Modificación del valor de la propiedad action Duplicando el valor de la propiedad action (enviar un mismo formulario a dos páginas distintas).  4. El valor de la propiedad method y target [http://www.desarrolloweb.com/articulos/1378.php?ma nual=50]  4.1 Sobre la propiedad Method: Ejemplos de aplicación Modificar el valor de la propiedad action 4.2 Sobre la propiedad Target: Ejemplos de aplicación Modificar el valor de la propiedad target 5. Objetos de un formulario [http://www.desarrolloweb.com/articulos/1390.php?manual=50]  5.1 Tipos de objetos, defi nición y sintaxis básica (campos de un formulario) . 6. Los objetos text y password [http://www.desarrolloweb.com/articulos/1391.php?man ual=50]  6.1 Propiedades de los objetos text y password 6.1.2 Sintaxis básica 6.2 Principales métodos de los objetos text y password 6.2.1 Sintaxis básica 6.3 Principales eventos de los objetos text y password 6.4 Sintaxis básica 7. Los objetos text y password II [http://www.desarrolloweb.com/articulos/1392.php?manual=50]  7.1 Ejemplos de aplicación I: Trabajando con el valor de un campo  Eliminar el valor de un campo al hacer click Reproducir el valor de un campo en otro Rellenar el valor de un campo vacío con una frase o palabra Validar campos (forma 1) Validar campos (forma 2) Introducir en un solo campo los valores de distintos campos. 8. Los objetos text y password III [http://www.desarrolloweb.com/articulos/1393.php?manual=50]  8.1 Ejemplos de aplicación II: Bloqueando y desbloqueando campos  Como bloquear o desbloquear un campo 8.2 Ejemplos de aplicación III: Trabajando con la propiedad size   Aumento y reducc ión del valor size 9. Los objetos text y password IV [http://www.desarrolloweb.com/articulos/1415.php?manual=50] Formularios y Javascript Manual por: DesarrolloWeb.com [http://www. desarrolloweb.com/] "Tu mejor ayuda para aprender a hacer webs" Versión on-line: http://www.desarrolloweb.com/manuales/50 Pág ina 1 de 42 Formu larios y Javascrip t - Manua l completo

Transcript of Manual Completo Formularios Javascript

Page 1: Manual Completo Formularios Javascript

5/8/2018 Manual Completo Formularios Javascript - slidepdf.com

http://slidepdf.com/reader/full/manual-completo-formularios-javascript-559ac095b0c00 1/42

 

 

Índice 

1. El objeto form, propiedades y métodos [http://www.desarrolloweb.com/articulos/1375.php?manual=50] 1.1 El objeto form1.2 Propiedades principales del objeto form1.2.1 Sintaxis básica1.3 Métodos del objeto form1.3.1 Sintaxis básica1.4 Ejemplo de aplicación Método POSTMétodo GET

2. Sub-propiedades del objeto form y eventos [http://www.desarrolloweb.com/articulos/1376.php?manual=50] 2.1 Sub-propiedades del objeto form2.1.1 Sintaxis básica2.2 Ejemplos de aplicación LengthIndex2.3 Los eventos que admite el objeto form2.3.1 Sintaxis básica2.4 Ejemplos de aplicación Alerta al enviar y/o restablecer un formulario

3. Valores de la propiedad action [http://www.desarrolloweb.com/articulos/1377.php?manual=50] 3.1 Ejemplos de aplicación Modificación del valor de la propiedad action

Duplicando el valor de la propiedad action (enviar un mismo formulario a dos páginas distintas). 

4. El valor de la propiedad method y target [http://www.desarrolloweb.com/articulos/1378.php?manual=50] 4.1 Sobre la propiedad Method: Ejemplos de aplicaciónModificar el valor de la propiedad action4.2 Sobre la propiedad Target: Ejemplos de aplicaciónModificar el valor de la propiedad target

5. Objetos de un formulario [http://www.desarrolloweb.com/articulos/1390.php?manual=50] 5.1 Tipos de objetos, definición y sintaxis básica (campos de un formulario).

6. Los objetos text y password [http://www.desarrolloweb.com/articulos/1391.php?manual=50] 6.1 Propiedades de los objetos text y password6.1.2 Sintaxis básica6.2 Principales métodos de los objetos text y password

6.2.1 Sintaxis básica6.3 Principales eventos de los objetos text y password6.4 Sintaxis básica

7. Los objetos text y password II [http://www.desarrolloweb.com/articulos/1392.php?manual=50] 7.1 Ejemplos de aplicación I: Trabajando con el valor de un campo Eliminar el valor de un campo al hacer clickReproducir el valor de un campo en otroRellenar el valor de un campo vacío con una frase o palabraValidar campos (forma 1)Validar campos (forma 2)Introducir en un solo campo los valores de distintos campos.

8. Los objetos text y password III [http://www.desarrolloweb.com/articulos/1393.php?manual=50] 8.1 Ejemplos de aplicación II: Bloqueando y desbloqueando campos 

Como bloquear o desbloquear un campo8.2 Ejemplos de aplicación III: Trabajando con la propiedad size Aumento y reducción del valor size

9. Los objetos text y password IV [http://www.desarrolloweb.com/articulos/1415.php?manual=50]

Formularios y Javascript

Manual por: DesarrolloWeb.com [http://www.desarrolloweb.com/]"Tu mejor ayuda para aprender a hacer webs"

Versión on-line:http://www.desarrolloweb.com/manuales/50

Página 1 de 42Formularios y Javascript - Manual completo

Page 2: Manual Completo Formularios Javascript

5/8/2018 Manual Completo Formularios Javascript - slidepdf.com

http://slidepdf.com/reader/full/manual-completo-formularios-javascript-559ac095b0c00 2/42

 

9.1 Ejemplos de aplicación III: Trabajando con la propiedad length Establecer un límite mínimo de caracteresEstablecer un límite máximo de caracteresEstablecer un límite absoluto de caracteresEstablecer un límite mínimo y uno máximo de caracteresContabilizar la cantidad de caracteres escritos y los restantesInformar la cantidad de caracteres excedidos y los faltantes

10. Los objetos text y password V [http://www.desarrolloweb.com/articulos/1416.php?manual=50] 10.1 Ejemplos de aplicación IV: toUpperCase y toLowerCase Convertir el texto a mayúsculasConvertir el texto a minúsculas

11. El objeto hidden [http://www.desarrolloweb.com/articulos/1417.php?manual=50] 11.1 Usos de este objeto

12. Los objetos radio y checkbox [http://www.desarrolloweb.com/articulos/1448.php?manual=50] 12.1 Propiedades de los objetos12.2 Principales eventos12.3 Sintaxis básica12.4 Ejemplos de aplicación I: Trabajando con la propiedad disabled Habilitar o deshabilitar un grupo de checkbox según la opción elegida de los radio buttons.Habilitar o deshabilitar un grupo de checkbox según el valor de la propiedad checked de otro checkbox.

13. Los objetos radio y checkbox II [http://www.desarrolloweb.com/articulos/1449.php?manual=50] 13.1 Sintaxis básica para conocer el valor de todas las propiedades13.1.1 Valor de value13.1.2 Valor de name13.1.3 Valor de disabled13.1.4 Valor de checked13.1.5 Valor de length13.2 Ejemplos de aplicación II: trabajando con el valor de las propiedades Como conocer los valores de todas las propiedades13.3 Ejemplos de aplicación III: trabajando con propiedad checked Aceptar los términos de un contrato antes de suscribir el formulario (realiza una acción solo si el checkbox no ha sidomarcado)

14. El objeto textarea [http://www.desarrolloweb.com/articulos/1451.php?manual=50]

 14.1 Propiedades básicas14.2 Sintaxis básica14.3 Principales métodos del objeto textarea14.4 Principales eventos del objeto textarea14.5 Ejemplos de aplicación Eliminar el valor de un campo al hacer clickReproducir el valor de un campo en otroRellenar el valor de un campo vacío con una frase o palabraValidar campos (forma 1)Validar campos (forma 2)Introducir en un solo campo los valores de distintos campos.Como bloquear o desbloquear un campoEstablecer un límite mínimo de caracteresEstablecer un límite máximo de caracteres

Establecer un límite absoluto de caracteresEstablecer un límite mínimo y uno máximo de caracteresContabilizar la cantidad de caracteres escritos y los restantesInformar la cantidad de caracteres excedidos y los faltantesConvertir el texto a mayúsculasConvertir el texto a minúsculas

15. Los objetos select y option [http://www.desarrolloweb.com/articulos/1489.php?manual=50] 15.1 SELECT: Propiedades principales15.2 SELECT: Sintaxis básica15.3 SELECT: Métodos del objeto15.4 SELECT: Eventos del objeto15.5 OPTION: Propiedades principales15.6 OPTION: Métodos y eventos15.7 Sintaxis básica general: llamando a las propiedades

15.8 El constructor new Option: uso y sintaxis

16. Los objetos select y option II [http://www.desarrolloweb.com/articulos/1490.php?manual=50] 16.1 Ejemplos de aplicación La propiedad disabled: habilitar un select si ya se ha elegido una opción de otro delect

Página 2 de 42Formularios y Javascript - Manual completo

Page 3: Manual Completo Formularios Javascript

5/8/2018 Manual Completo Formularios Javascript - slidepdf.com

http://slidepdf.com/reader/full/manual-completo-formularios-javascript-559ac095b0c00 3/42

 

El constructor new Option: listas encadenadas. Cambian las opciones de una lista, dependiendo de la selección realizadaen otra.Validar un select.Modificar la propiedad text de un option.

17. El objeto file [http://www.desarrolloweb.com/articulos/1498.php?manual=50] 17.1 Principales propiedades17.2 Eventos que admite

Anexo I Rutinas JavaScript para aplicar a formularios [http://www.desarrolloweb.com/articulos/1507.php?manual=50 

Colocar el foco en un determinado campo al cargar la página

Convierte la primer letra de cada palabra en mayúscula

Convierte la primer letra del texto en mayúsculas

Escribe un valor indicado en otra ventana, en el formulario abierto

Comprueba que el valor ingresado en dos campos no sea el mismo

Comprueba que el valor ingresado en dos campos sea igual

Permite seleccionar solo una determinada cantidad de checkbox del mismo nombre  Selecciona todos los checkbox con un solo click o los deselecciona  Selecciona todos los checkbox con un solo click o los deselecciona o invierte la selección  Cuenta la cantidad de checkbox o radio que hay seleccionados 

Anexo II Más rutinas JavaScript [http://www.desarrolloweb.com/articulos/1517.php?manual=50] 

Aumenta o disminuye un valor   Cuenta la cantidad de palabras introducidas en un textarea  Muestra o esconde el botón "submit"  Habilita o deshabilita el botón "submit"  Mensaje de confirmación al borrar un formulario  Mensaje de confirmación al enviar un formulario 

El objeto form, propiedades y métodos 

El primer paso de este manual consistirá en conocer el objeto form, sus elementos y propiedades y luego iremos viendoalgunas de las distintas formas del procesamiento de datos, su envío y recepción, etc.

1.1 El objeto form 

El objeto form es un sub-objeto del objeto document y este a su vez, lo es del objeto window .Así como para crear una página en HTML se utilizan las etiquetas <HTML> Y </HTML>, lo mismo sucede con unformulario: el formulario debe estar contenido entre las etiquetas <form> y </form> En principio la sintaxis básica para referirnos a un formulario sería:

window.document.forms.nombre_del_formulario 

En la que tranquilamente pueden prescindirse de  window y forms ya que el navegador toma al formulario como unobjeto en sí mismo. De la misma forma, tambien puede prescindirse de document . Pero esta omisión solo se hará siqueremos referirnos a un formulario en particular (por ejemplo a un formulario llamado "datos"). Pero al momento dereferirnos a "todos los formularios de una página", solo se podrá prescindir del objeto window.

De todas formas, iremos viendo la aplicación de este tipo de sintaxis con los próximos ejemplos y a medida queavancemos.

1.2 Propiedades principales del objeto form 

El objeto form posee las siguientes propiedades:

propiedad descripción 

name es el nombre único del formulario.

actiones el lugar al cual se envía el formulario para ser procesado. El action define la URL a lacual se envía dicho formulario.

método de envío de los datos insertados en un formulario. El method puede ser:

Página 3 de 42Formularios y Javascript - Manual completo

Page 4: Manual Completo Formularios Javascript

5/8/2018 Manual Completo Formularios Javascript - slidepdf.com

http://slidepdf.com/reader/full/manual-completo-formularios-javascript-559ac095b0c00 4/42

 

 

1.2.1 Sintaxis básica 

 <form name="nombre_formulario" action=" procesar.asp" method="POST" target=" _blank">  .......campos.... </form>  

1.3 Métodos del objeto form 

El objeto form posee dos métodos:

1.3.1 Sintaxis básica 

 <form name="nombre_formulario" action=" procesar.asp" method="POST" target=" _blank">  .......campos.... <input type="submit" value="enviar formulario">   <input type="reset" value="borrar">   </form>  

1.4 Ejemplo de aplicación 

Con estos ejemplos veremos la utilización de la propiedad method y de los métodos submit  y reset .

Method POST 

El código.... <form name="datos" action="ejemplos/procesar.asp" method="POST" target=" _blank">Escribe tu nombre: <input type="text" name="nombre"><br><input type="submit" value="enviar formulario"><br><input type="reset" value="borrar"></form>

El resultado... 

Escribe tu nombre:

Method GET 

El código.... <form name="datos1" action="ejemplos/procesar1.asp" method="GET" target=" _blank">Escribe tu nombre: <input type="text" name="nombre"><br><input type="submit" value="enviar formulario"><br><input type="reset" value="borrar"></form>

El resultado... 

Escribe tu nombre:

methodGET = envía los datos en una cadena "visible". Conveniente para enviar pocos datos.POST = envía los datos en forma "invisible". Conveniente para enviar una gran cantidad dedatos.

targetdefine la ventana o marco (frame) en la que se mostrarán o procesarán los resultados delformulario.El valor es el mismo que el utilizado en HTML (blank, self, top, nombre_marco, etc..) 

método descripción 

submit envía el formulario.

reset restablece el formulario a los valores por defecto.

enviarformulario borrar

enviarformulario borrar

Página 4 de 42Formularios y Javascript - Manual completo

Page 5: Manual Completo Formularios Javascript

5/8/2018 Manual Completo Formularios Javascript - slidepdf.com

http://slidepdf.com/reader/full/manual-completo-formularios-javascript-559ac095b0c00 5/42

 

 

Sub-propiedades del objeto form y eventos 

2.1 Sub-propiedades del objeto form 

El objeto form posee dos sub-propiedades, a parte de las propiedades nombradas en el capítulo anterior. Estas sub-propiedades son:

2.1.1 Sintaxis básica 

document.forms[index]donde index es el número correspondiente al formulario: document.forms[0] indica el primer formulario y

document.forms.length nos indica la cantidad de formularios que hay en una página.

2.2 Ejemplos de aplicación 

LENGTH 

El código... Presiona el botón para saber cuantos formularios hay en esta página:<input type="button" value="Click aquí" onClick="alert('Hay ' + document.forms.length +' formularios en esta página')">

Los resultados... 

Presiona el botón para saber cuantos formularios hay en esta página:

INDEX 

El código... Presiona el botón para saber el nombre del primer formulario:<input type="button" value="Click aquí" onClick="alert('El nombre del primer formularioes: ' + document.forms[0].name)">

Los resultados...

Presiona el botón para saber el nombre del primer formulario:

2.3 Los eventos que admite el objeto form 

Si bien la mayoría de los eventos JavaScript son aceptados por el objeto form, muchos de ellos pueden crear másproblemas que soluciones y si se utilizan, es en casos muy específicos pero no usuales.En la siguiente lista veremos los más utilizados:

2.3.1 Sintaxis básica 

<form name="..." method ="..." action="..." target="..." onSubmit="función"

onReset="función">

2.4 Ejemplos de aplicación 

Aquí veremos un ejemplo en el que se enviará un mensaje de alerta al usuario cuando envía el formulario o cuando lo

sub-propiedad descripción 

index es un array que contiene todos los formularios de una página, donde el primer formularioes identificado con el número 0 y así sucesivamente.

length contiene el número (cantidad) de formularios que hay en una página.

Clickaquí 

Clickaquí 

evento descripción 

onSubmit es el principal evento del objeto form y se produce al enviar el formulario: ya sea medianteel botón submit o mediante una función JavaScript que llame al método submit() 

onReset funciona igual que el evento anterior pero se sucede al restablecer el formulario.

Página 5 de 42Formularios y Javascript - Manual completo

Page 6: Manual Completo Formularios Javascript

5/8/2018 Manual Completo Formularios Javascript - slidepdf.com

http://slidepdf.com/reader/full/manual-completo-formularios-javascript-559ac095b0c00 6/42

 

restablece.

El código... <form name="formulario" method="post" action="ejemplos/procesar.asp" target="_blank"onSubmit="alert('Se enviará el formulario')" onReset="alert('Se borrarán todos los datosinsertados')">Escribe tu nombre: <input type="text" name="nombre"><br><input type="submit" value="Enviar"><input type="reset" value="Borrar">

</form>

Los resultados.... 

Escribe tu nombre:

Valores de la propiedad action 

3.1 Ejemplos de aplicación 

Vimos en la introducción de este manual, para que sirve la propiedad action. Ahora, veremos lo que se puede hacer conla misma mediante JavaScript.

Mediante JavaScript, podremos modificar/seleccionar el valor de la propiedad action según las preferencias del usuario.

El ejemplo más típico sería el de un formulario de suscripción a un boletín de novedades, donde el usuario deberá elegir,si desea darse de alta o de baja.

Modificación del valor de la propiedad action 

El Script... 

 <script language="javascript">  

function enviar(form) { 

if ((boletin.alta.checked == true) && (boletin.baja.checked == true)){ alert("Por favor, marca una sola casilla"); return true; }

if ((boletin.alta.checked == false) && (boletin.baja.checked == false)){ alert("Debes indicar si deseas darte de alta o de baja"); return true; }

if (boletin.alta.checked == true){ boletin.action = "ejemplos/alta.asp"; }

if (boletin.baja.checked == true){ boletin.action = "ejemplos/baja.asp"; }

form.submit()}  </script>  

El formulario... <form name="boletin" method="GET" action="ejemplos/alta.asp" target="_blank"><b>Suscripción gratuita al boletín de novedades</b><br>Por favor, introduce tu e-mail:<input type="text" name="email" size="20"><br><input type="checkbox" name="alta" value="ON"> Darme de <b>alta</b> |<input type="checkbox" name="baja" value="ON"> Darme de baja<br><input type="button" onClick="enviar(this.form)" value="Enviar"></form>

Los resultados... 

Por favor, introduce tu e-mail:

Enviar Borrar

Página 6 de 42Formularios y Javascript - Manual completo

Page 7: Manual Completo Formularios Javascript

5/8/2018 Manual Completo Formularios Javascript - slidepdf.com

http://slidepdf.com/reader/full/manual-completo-formularios-javascript-559ac095b0c00 7/42

 

Darme de alta | Darme de baja

Otro ejemplo muy utilizado, es enviar el mismo formulario a dos páginas diferentes. Veamos un ejemplo:

Duplicando el valor de la propiedad action 

El Script... <script language="javascript">function Envio1() {datos.action = "ejemplos/pagina1.asp";datos.submit()}function Envio2() {datos.action = "ejemplos/pagina2.asp";datos.submit()}</script>

El Formulario... <form method="GET" name="datos" action="ejemplos/pagina1.asp" target="_blank">Tu nombre: <input type="text" name="nombre"><br>Edad: <input type="text" name="edad" size="2"><br><input type="button" value="Enviar" onClick="Envio1(this.form); Envio2(this.form)"></form>

Los resultados... 

Tu nombre:

Edad:

De la misma forma que se puede modificar el valor de la propiedad action, pueden modificarse method 

http://www.desarrolloweb.com/articulos/4.htm]  y target [http://www.desarrolloweb.com/articulos/4.htm] . Modificar el valor de lapropiedad method [http://www.desarrolloweb.com/articulos/4.htm] sería un poco ridículo ya que el método por el cual se envíanlos datos, puede estar perfectamente definido en el formulario. El valor de target [http://www.desarrolloweb.com/articulos/4.htm] 

puede llegar a ser más útil, si le damos al usuario la posibilidad de decidir si quiere abrir los resultados enviados en nuevaentana, en la misma página o en un marco de la misma.

El valor de la propiedad method y target 

.1 Sobre la propiedad Method  

Como dijese anteriormente, modificar el valor de la propiedad method carece de un verdadero sentido. Pero, de todasormas, esto siempre dependerá de lo que se necesite hacer.La función que modifica el valor de method es muy similar a la que modifica el valor de action y target .

eamos como se realiza este función:

<script languaje="javascript">function CambiaMethod(){ form1.method ="POST"; }</script>

Realmente es similar a la vista en el punto anterior.

hora, pondremos un ejemplo en práctica, donde le damos al usuario la posibilidad de elegir el método del envío de datosy según el tipo de envío que elija, será a la página que lo enviemos:

El Script... 

gfedc gfedc

Enviar

Enviar

Página 7 de 42Formularios y Javascript - Manual completo

Page 8: Manual Completo Formularios Javascript

5/8/2018 Manual Completo Formularios Javascript - slidepdf.com

http://slidepdf.com/reader/full/manual-completo-formularios-javascript-559ac095b0c00 8/42

 

<script languaje="javascript">function CambiaMethod() {

if (form1.POST.checked == true){form1.method ="POST";form1.action = "ejemplos/procesar.asp"}

if (form1.GET.checked == true){form1.method = "GET";form1.action = "ejemplos/procesar1.asp"}

form1.submit()}</script>

El formulario... <form name="form1" method="post" action="ejemplos/procesar.asp" target="_blank">Escribe tu nombre: <input type="text" name="nombre"><br><input type="checkbox" name="POST" value="ON">Método POST |<input type="checkbox" name="GET" value="ON">Método GET<br><input type="button" value="Enviar" onClick="CambiaMethod(this.form)"></form>

Los resultados... 

Escribe tu nombre:

Método POST | Método GET

.2 Sobre la propiedad Target  

De igual forma que en el anterior ejemplo, veremos un caso en el que el usuario seleccionará el target en el cual deseaisualizar los resultados enviados por el formulario.

El Script... <script languaje="javascript">function CambiaTarget() {

if (form2. blank.checked == true){form2.target ="_blank";}

if (form2.self.checked == true){form2.target = "_self";}

form2.submit()}</script>

El formulario... <form name="form2" method="post" action="ejemplos/procesar.asp" target="_blank">Escribe tu nombre: <input type="text" name="nombre"><br><input type="checkbox" name="blank" value="ON">Resultados en nueva ventana |<input type="checkbox" name="self" value="ON">en la misma ventana<br><input type="button" value="Enviar" onClick="CambiaTarget(this.form)">

</form>

Los resultados... 

gfedc gfedc

Enviar

Página 8 de 42Formularios y Javascript - Manual completo

Page 9: Manual Completo Formularios Javascript

5/8/2018 Manual Completo Formularios Javascript - slidepdf.com

http://slidepdf.com/reader/full/manual-completo-formularios-javascript-559ac095b0c00 9/42

 

Escribe tu nombre:

Resultados en nueva ventana | en la misma ventana

Objetos de un formulario 

.1 Tipos de objetos, definición y sintaxis básica 

Los objetos de un formulario (objetos del objeto form) son los "campos" de un formulario. En la siguiente tabla, podremosapreciar los tipos de objetos con su correspondiente descripción:

gfedc gfedc

Enviar

objeto descripción  ejemplo 

text es un campo de texto en el que los datos en él

introducidos son visibles para el usuario.

Sintaxis:  <input type="text" name=".." value=".."size="..">

passwordun campo de texto idéntico a text con la diferencia quelos datos en él introducidos, no pueden ser visualizadospor el usuario, sino que son mostrados con asteriscos *

 Sintaxis:  <input type="password" name=".." value=".."size="..">

hiddenes un campo de texto oculto con un valor preestablecidoy que el usuario no podrá visualizar en ningún momento.

 

Sintaxis:  <input type="hidden" name=".." value="..">

textarea

es un campo de texto similar en su tratamiento a text  pero lo que en él varía es su apariencia, ya que puedetener un alto y ancho determinado, barras de scroll paranavegar por su interior y admite saltos de línea.

 Sintaxis:  <textarea rows=".."cols="..">....texto... </textarea>  

radioes un botón circular que permite elegir al usuario unaopción de entre varias pertenecientes a un mismo grupo.  nmlkji nmlkj

  Sintaxis:  <input type="radio" name=".." value="..">

checkboxes una casilla de verificación que permite al usuarioseleccionar más de una opción entre varias. Similar aradio pero con esta ventaja.

 gfedc gfedc

 Sintaxis:  <input type="checkbox" name=".."value="..">

option

es una lista desplegable de varias opciones. Puedepermitir la selección de una sola opción o de múltiplesopciones (si se mantiene presionada la tecla Crtl durantedicha selección).

 opcion1

opcion1

opcion2

 Sintaxis:  <select name=".."  multiple><option value="..">texto1</option>

Página 9 de 42Formularios y Javascript - Manual completo

Page 10: Manual Completo Formularios Javascript

5/8/2018 Manual Completo Formularios Javascript - slidepdf.com

http://slidepdf.com/reader/full/manual-completo-formularios-javascript-559ac095b0c00 10/42

 

 

Los objetos text y password 

6.1 Propiedades de los objetos text y password  

6.1.2 Sintaxis básica 

<input type="[objeto]" name="nombre" value="valor " disabled/ReadOnly size="20"axlength="20">

[objeto] --> debe ser reemplazado por text o password .disabled/ReadOnly --> debe elegirse una sola propiedad disabled o ReadOnly  

Para llamar a alguna de estas propiedades, se utiliza la siguiente sintaxis:

<option value="..">texto2</option> </select>  

filecampo compuesto que permite examinar el disco duropara subir ficheros al servidor.

Examinar...

 Sintaxis:  <input type="file" name="..." size="5">

submites un tipo de botón que se encarga de enviar elformulario.

Enviar

 Sintaxis:  <input type="submit" value="..">

resetes un tipo de botón que se encarga de restablecer elformulario a sus valores por defecto.

Borrar

 Sintaxis:  <input type="reset" value="..">

buttones un tipo de botón al que se le pueden asignar múltiplesfunciones mediante eventos.

Boton

 

Sintaxis: 

 <input type="button" value="..">

imagees una imagen que actúa como botón (reset, button osubmit )

 Sintaxis:  <input type="image" src=".." ...>

propiedad descripción 

name nombre del campo. Es el identificador único del campo. Este nombre no puede estar duplicado dentro del formulario.

valuevalor del campo. puede establecerse un valor por defecto u obtener el introducidomediante JavaScript.

disabled

si su valor es "true", bloquea el campo de texto y no permite introducir ningún dato enél. Dicho de una forma poco técnica, este campo de texto "No es enviado en elformulario" y "actúa como si no existiese". Si su valor es "false" contrarresta el efectoanterior.

ReadOnly

convierte al campo en un área de "solo lectura". A diferencia de disabled esta

propiedad, no bloquea el campo, sino que simplemente no permite modificar sucontenido.

size El ancho "visible" de la caja de texto. NO limita la cantidad de caracteres.

length cuenta la cantidad de caracteres introducidos en el campo.

maxlength es la cantidad máxima de caracteres permitidos dentro del campo.

Página 10 de 42Formularios y Javascript - Manual completo

Page 11: Manual Completo Formularios Javascript

5/8/2018 Manual Completo Formularios Javascript - slidepdf.com

http://slidepdf.com/reader/full/manual-completo-formularios-javascript-559ac095b0c00 11/42

 

formulario.campo. propiedad  

donde:formulario es el nombre del formulariocampo el nombre del campoy propiedad debe ser reemplazado por el nombre de la propiedad correspondiente.

6.2 Principales métodos de los objetos text y password  

6.2.1 Sintaxis básica 

formulario.campo. método()

donde:formulario es el nombre del formulariocampo el nombre del campoy método debe ser reemplazado por el nombre del método correspondiente.

6.3 Principales eventos de los objetos text y password  

6.4 Sintaxis básica 

<input type="text" name="..." value="..." ..... evento="función">  

evento debe ser reemplazado por el evento deseado (ejemplo: onFocus) y función puede ser la función JavaScript, ouna acción cualquiera.

ejemplo:<... onFocus="alert('Mensaje de Alerta')" ...>

Los objetos text y password II 

7.1 Ejemplos de aplicación I: Trabajando con el valor de un campo 

EJEMPLO #1:Tenemos una caja de texto con un valor por defecto. Cuando el usuario hace click sobre el campo, el valor 

método descripción 

focus Pone el foco en el campo.

select Selecciona todo el texto contenido en el campo (lo colorea de un azul estándar)

toUpperCaseConvierte el texto introducido en el campo a mayúsculas. Está asociado a la propiedadvalue.

toLowerCaseConvierte el texto introducido en el campo a minúsculas. Está asociado a la propiedadvalue.

evento descripción 

onFocus Permite realizar una acción al poner el foco en el campo.

onBlur  Permite realizar una acción cuando el foco ya no se encuentra en el campo.onSelet Permite realizar una acción cuando se selecciona el texto del campo.

onKeyUp /onKeyDown /onKeyPress

Permite realizar una acción cuando el usuario pulsa una tecla (en los ejemplosveremos la diferencia)

onClick Permite realizar una acción cuando se hace click sobre el campo.

onChange Permite realizar una acción cuando el texto del campo cambia por otro.

onMouseOver /onMouseOut

Permite realizar una acción cuando el mouse pasa por encima del campo o loabandona (estos eventos tienen un uso muy restringido ya que dependen del fin quese le quiera aplicar. Por lo general, son bastante molestos puesto que el usuariopuede pasar el mouse por error, sobre un campo).

Página 11 de 42Formularios y Javascript - Manual completo

Page 12: Manual Completo Formularios Javascript

5/8/2018 Manual Completo Formularios Javascript - slidepdf.com

http://slidepdf.com/reader/full/manual-completo-formularios-javascript-559ac095b0c00 12/42

 

"desaparece".

El código... 

<form name="ejemplo1" method="POST"><input type="text" name="usuario" value="Nombre de usuario"onClick="ejemplo1.usuario.value=''" size="16">

<br>Password: <input type="password" name="clave" size="6" value="123456"onClick="ejemplo1.clave.value=''"></form>

Los resultados... 

Password:

EJEMPLO #2:El valor introducido en una caja de texto es "reproducido" en otro campo.

El Script... 

<script languaje="javascript">function pasaValor(form) { ejemplo2.campo2.value = ejemplo2.campo1.value; }</script>

El formulrio... <form name="ejemplo2" method="POST">Tu nombre: <input type="text" name="campo1" onKeyUp="pasaValor(this.form)"><br>Nombre introducido: <input type="text" name="campo2" ReadOnly></form>

Los resultados... 

Tu nombre:

Nombre introducido:

EJEMPLO #3:Veremos aquí un ejemplo más complejo, en el cual se rellenarán los campos de texto vacíos con la frase "No aportado"

El Script... 

<script languaje="javascript">function rellenar() {var texto = "No aportado"if (ejemplo3.nombre.value == "") { ejemplo3.nombre.value = texto; }if (ejemplo3.telefono.value == "") { ejemplo3.telefono.value = texto; }if (ejemplo3.ciudad.value == "") { ejemplo3.ciudad.value = texto; }alert("Los campos en blanco se completaron automáticamente");ejemplo3.submit()}</script>

El formulario... 

<form name="ejemplo3" method="POST" target="_blank"><b>Rellena tu perfil de usuario</b> (opcional)<br>Nombre real: <input type="text" name="nombre"><br>Teléfono: <input type="text" name="telefono"><br>Ciudad: <input type="text" name="ciudad"><br>

Nombredeusuario

●●●●●●

Página 12 de 42Formularios y Javascript - Manual completo

Page 13: Manual Completo Formularios Javascript

5/8/2018 Manual Completo Formularios Javascript - slidepdf.com

http://slidepdf.com/reader/full/manual-completo-formularios-javascript-559ac095b0c00 13/42

 

<input type="button" value="Terminar" onClick="rellenar()"></form>

Los resultados... 

Rellena tu perfil de usuario (opcional)

Nombre real:

Teléfono:

Ciudad:

Si modificamos un poco el ejemplo anterior, podemos hacer que en vez de completar automáticamente los campos, leavise al usuario que debe completarlos para poder enviar el formulario. Esto podremos hacerlo avisando al usuario campopor campo o enviándole un aviso en general:

EJEMPLO #4: VALIDAR CAMPOS (forma 1) 

El Script... 

<script languaje="javascript">function validar(form){var error = "Por favor, antes de enviar el formulario,\ncomplete los siguientescampos:\n\n";var a = ""

if (form.nombre.value == "") { a += " Nombre real\n"; }if (form.telefono.value == "") { a += " Teléfono\n"; }if (form.ciudad.value == "") { a += " Ciudad\n"; }

if (a != "") { alert(error + a); return true; }

form.submit()}</script>

El formulario... 

<form name="ejemplo4" method="POST" target="_blank"><b>Rellena tu perfil de usuario</b> (obligatorio)<br>Nombre real: <input type="text" name="nombre"><br>Teléfono: <input type="text" name="telefono"><br>Ciudad: <input type="text" name="ciudad"><br><input type="button" value="Terminar" onClick="validar(this.form)"></form>

Rellena tu perfil de usuario (obligatorio)

Nombre real:

Teléfono:

Ciudad:

EJEMPLO #5: VALIDAR CAMPOS (forma 2) 

El Script... 

<script languaje="javascript">

Terminar

Terminar

Página 13 de 42Formularios y Javascript - Manual completo

Page 14: Manual Completo Formularios Javascript

5/8/2018 Manual Completo Formularios Javascript - slidepdf.com

http://slidepdf.com/reader/full/manual-completo-formularios-javascript-559ac095b0c00 14/42

 

function alerta(campo){ alert("Por favor, completa el campo "+campo) }

function validar2(form){

if (form.nombre.value == ""){ alerta('\"Nombre real\"'); form.nombre.focus(); return true; }

if (form.telefono.value == ""){ alerta('\"Teléfono\"'); form.telefono.focus(); return true; }

if (form.ciudad.value == ""){ alerta('\"Ciudad\"'); form.ciudad.focus(); return true; }

form.submit()}</script>

El formulario... 

<form name="ejemplo5" method="POST" target="_blank"><b>Rellena tu perfil de usuario</b> (obligatorio)<br>Nombre real: <input type="text" name="nombre"><br>Teléfono: <input type="text" name="telefono"><br>Ciudad: <input type="text" name="ciudad"><br><input type="button" value="Terminar" onClick="validar2(this.form)"></form>

Los resultados... 

Rellena tu perfil de usuario (obligatorio)

Nombre real:

Teléfono:

Ciudad:

Otra función muy interesante con JavaScript, es aquella por la cual tomamos los datos introducidos en distinto campos deexto y transferimos todos los valores a un solo campo. Es ideal, por ejemplo, cuando recopilamos información sobre eldomicilio de una persona o por que no, para tantas otras cosas.

eamos el ejemplo:

EJEMPLO #6 

El Script... 

<script languaje="javascript">

function completar(form){form.domicilio.value == ""

if (form.calle.value != "") { form.domicilio.value += form.calle.value + " "; }if (form.nro.value != "") { form.domicilio.value += "N°" + form.nro.value + ", "; }if (form.piso.value != "") { form.domicilio.value +="Piso " + form.piso.value + " "; }if (form.dto.value != "") { form.domicilio.value += "Dpto. \"" + form.dto.value + "\" -"; }if (form.cp.value != "") { form.domicilio.value += "(" + form.cp.value + ") "; }if (form.ciudad.value != "") { form.domicilio.value += form.ciudad.value + ", "; }if (form.pais.value != "") { form.domicilio.value += form.pais.value; }}</script>

El formulario... 

<form name="ejemplo6" method="POST" action="ejemplos/ej6.asp" target="_blank">Por favor, complete su domicilio:<br>

Terminar

Página 14 de 42Formularios y Javascript - Manual completo

Page 15: Manual Completo Formularios Javascript

5/8/2018 Manual Completo Formularios Javascript - slidepdf.com

http://slidepdf.com/reader/full/manual-completo-formularios-javascript-559ac095b0c00 15/42

 

<br>Calle: <input type="text" name="calle" size="40">Nro.: <input type="text" name="nro" size="3"><br>Piso: <input type="text" name="piso" size="2">Departamento: <input type="text" name="dto" size="2"><br>Código Postal: <input type="text" name="cp" size="8">Ciudad: <input type="text" name="ciudad" size="20">País: <input type="text" name="pais" size="20"><br><br>

Verifique su domicilio: <input type="text" name="domicilio" size="80" ReadOnlyonFocus="completar(this.form)"><br>Si los datos no son correctos, <a onClick="ejemplo6.domicilio.value=''" style="cursor:hand">presione aquí</a> y realice los cambios en los campos correspondientes.<br><input type="submit" value="Confirmar"></form>

Los resultados... 

Por favor, complete su domicilio:

Calle: Nro.:

Piso: Departamento:

Código Postal: Ciudad: País:

Verifique su domicilio: lo datos se verán una vez que el campo tomo el foco (puede ser mediante la tecla TAB o haciendo click en elcampo). 

Si los datos no son correctos, presione aquí y realice los cambios en los campos correspondientes.

Los objetos text y password III 

.1 Ejemplos de aplicación II: Bloqueando y desbloqueando campos 

Lo que aquí veremos es un ejemplo muy sencillo, en el cual, el campo "clave" (password) estará bloqueado si el campo"usuario" (text) se encuentra vacío y se desbloqueará en caso contrario.

El script... 

<script languaje="javascript">function bloqDesbloq()

{a = login.usuario.value

if (a != "") { a = true; }else { a = false; }if (a == true) { login.clave.disabled = false; }else { login.clave.disabled = true; }

}</script>

El formulario... 

<form name="login" method="POST" action="pagina_de_login.asp" target="_blank">Usuario: <input type="text" name="usuario" size="10" onKeyUp="bloqDesbloq()"><br>Clave: <input type="password" name="clave" size="10" disabled>

</form>

Los resultados... 

Confirmar

Página 15 de 42Formularios y Javascript - Manual completo

Page 16: Manual Completo Formularios Javascript

5/8/2018 Manual Completo Formularios Javascript - slidepdf.com

http://slidepdf.com/reader/full/manual-completo-formularios-javascript-559ac095b0c00 16/42

 

Usuario:

Clave:

.2 Ejemplos de aplicación III: Trabajando con la propiedad size 

No son muy frecuentes los cambios o el provecho que se le puede sacar al valor de la propiedad size, pero en algunoscasos, y sobre todo asociado a la propiedad length puede resultar muy útil.

AUMENTO Y REDUCCIÓN DEL VALOR SIZE Si aumenta el valor de length aumenta el tamaño de size 

El script... 

<script languaje="javascript">function aumentarSize(){a = ejemplo9.campo1.value.length;

if (a > 6) { ejemplo9.campo1.size =(a+1); }if (a < 6) { ejemplo9.campo1.size = "6"; }

}</script>

El formulario... 

<form name="ejemplo9">Campo 1: <input type="text" name="campo1" size="6" onKeyUp="aumentarSize()"></form>

Los resultados...

Campo 1:

Los objetos text y password IV 

.1 Ejemplos de aplicación III: Trabajando con la propiedad length 

Esta es una de las propiedades más útiles de estos objetos. Con esta propiedad, podremos limitar una cantidad decaracteres mínimo, máximo o absoluto. Veremos entonces, 4 ejemplos:

1. LÍMITE MÍNIMO DE CARACTERES 

El script... 

<script languaje="javascript">function validarCampo1(form) {

if (form.palabra1.value.length < 6){alert('Debes introducir una palabra con un mínimo de 6 caracteres');form.palabra1.focus(); return true;}

}</script>

El formulario... 

<form name="form1" method="post">Mínimo 6 caracteres: <input type="text" name="palabra1"><input type="button" onClick="validarCampo1(this.form)" value="Enviar">

 

Página 16 de 42Formularios y Javascript - Manual completo

Page 17: Manual Completo Formularios Javascript

5/8/2018 Manual Completo Formularios Javascript - slidepdf.com

http://slidepdf.com/reader/full/manual-completo-formularios-javascript-559ac095b0c00 17/42

 

</form>

El resultado... 

Mínimo 6 caracteres:

2. LÍMITE MÁXIMO DE CARACTERES 

El script... 

<script languaje="javascript">function validarCampo2(form){

if (form.palabra1.value.length > 6){alert('Debes introducir una palabra con un máximo de 6 caracteres');form.palabra1.focus(); return true;}

}</script>

El formulario... 

<form name="form2" method="post">Máximo 6 caracteres: <input type="text" name="palabra1"><input type="button" onClick="validarCampo2(this.form)" value="Enviar"></form>

Los resultados... 

Máximo 6 caracteres:

3. LÍMITE ABSOLUTO DE CARACTERES 

El script... 

<script languaje="javascript">function validarCampo3(form){

if (form.palabra1.value.length != 6){alert('Debes introducir una palabra de 6 caracteres');form.palabra1.focus(); return true;}

}</script>

El formulario... 

<form name="form3" method="post">Introduce solo 6 caracteres: <input type="text" name="palabra1"><input type="button" onClick="validarCampo3(this.form)" value="Enviar"></form>

Los resultados... 

Introduce solo 6 caracteres:

4. LÍMITE MÍNIMO Y MÁXIMO DE CARACTERES 

Enviar

Enviar

Enviar

Página 17 de 42Formularios y Javascript - Manual completo

Page 18: Manual Completo Formularios Javascript

5/8/2018 Manual Completo Formularios Javascript - slidepdf.com

http://slidepdf.com/reader/full/manual-completo-formularios-javascript-559ac095b0c00 18/42

 

 El script... 

<script languaje="javascript">function validarCampo4(form){var a = form.palabra1.value.length

if ((a < 6) || ( a > 12))

{alert('Debes introducir una palabra con un mínimo de 6 caracteres y un máximo de

12');form.palabra1.focus(); return true;}

}</script>

El formulario... 

<form name="form4" method="post">Mínimo 6 caracteres, máximo 12: <input type="text" name="palabra1"><input type="button" onClick="validarCampo4(this.form)" value="Enviar"></form>

Los resultados... 

Mínimo 6 caracteres, máximo 12:

De igual modo, podemos hacer lo siguiente:

Que a medida que el usuario escriba en el campo de texto se le informe la cantidad de caracteres que ha escritoy/o los restantes.

Que al presionar el botón, no solo se lo alerte del error de caracteres introducidos, sino que además se lo informede la cantidad de caracteres que ha escrito, el exceso o resto de caracteres producidos.

eamos los siguientes ejemplos basados en una amplitud máxima de 50 caracteres en el primer caso y una longitudabsoluta de 12 caracteres en el segundo:

CANTIDAD DE CARACTERES ESCRITOS Y CARACTERES RESTANTES 

El Script... 

<script languaje="javascript">function contar(form) {n = form.campo.value.length;t = 50;

{form.escritos.value = n;form.restantes.value = (t-n);}

}</script>

El formulario... 

<form name="form5" method="POST">Máximo 50 caracteres: <input type="text" name="campo" size="50" maxlength="50"onKeyUp="contar(this.form)"><br>Escritos: <input type="text" ReadOnly name="escritos" size="2" value="0">Restantes: <input type="text" ReadOnly name="restantes" size="2" value="50"></form>

Los resultados... 

Máximo 50 caracteres:

Escritos: Restantes:

Enviar

0 50

Página 18 de 42Formularios y Javascript - Manual completo

Page 19: Manual Completo Formularios Javascript

5/8/2018 Manual Completo Formularios Javascript - slidepdf.com

http://slidepdf.com/reader/full/manual-completo-formularios-javascript-559ac095b0c00 19/42

 

CANTIDAD DE CARACTERES EXCEDIDOS Y CARACTERES FALTANTES 

El Script... 

<script languaje="javascript">function validarCampo5(form){

c = 12; // cant. máxima de caracteresL = form.campo.value.length;// e es el excedido// f es el faltante

if (L > c) { e = (L-c); error = 1; }if (L < c) { f = (c-L); error = -1; }

if ((L != c) && (error == -1)){alert("El campo contiene " + f + " caracteres menos a los solicitados");form.campo.focus(); return true;}

if ((L != c) && (error == 1)){alert("El campo contiene " + e + " caracteres más a los solicitados");form.campo.focus(); return true;}

}</script>

El formulario... 

<form name="form6" method="POST">Escribir solo 12 caracteres: <input type="text" name="campo" size="12"><br><input type="button" value="Enviar" onClick="validarCampo5(this.form)"></form>

Los resultados... 

Escribir solo 12 caracteres:

Los objetos text y password V 

.1 Ejemplos de aplicación IV: toUpperCase y toLowerCase Este es uno de los métodos más sencillos de emplear y veremos solo dos ejemplos pero no nos detendremos demasiado.

 

CONVERTIR TODO EL TEXTO A MAYÚSCULAS 

El código... 

<form name="form1" method="POST">Texto: <input type="text" name="txt1" size="20"onKeyUp="form1.txt1.value=form1.txt1.value.toUpperCase()"></form>

Los resultados... 

Texto:si escribes el texto utilizando minúsculas notarás el cambio

 

Enviar

Página 19 de 42Formularios y Javascript - Manual completo

Page 20: Manual Completo Formularios Javascript

5/8/2018 Manual Completo Formularios Javascript - slidepdf.com

http://slidepdf.com/reader/full/manual-completo-formularios-javascript-559ac095b0c00 20/42

 

 

CONVERTIR TODO EL TEXTO A MINÍSCULAS 

El código... 

<form name="form2" method="POST">Texto: <input type="text" name="txt1" size="20"onKeyUp="form2.txt1.value=form2.txt1.value.toLowerCase()"></form>

Los resultados... 

Texto:si escribes el texto utilizando mayúsculas notarás el cambio 

El objeto hidden 

11.1 Usos de este objeto 

El primer punto a tener en cuenta con el objeto hidden es que este es "invisible al usuario". El usuario no puede verlo ypor lo tanto no puede interactuar con él.

El objeto hidden solo sirve para recolectar información del usuario y preferencias en forma de texto. Por ejemplo,podremos mantener durante todos los formularios de distintas páginas, el nombre del usuario:

<input type="hidden" name="usuario" value="Carlitos_2003">

Pero el valor (value) estará siempre impuesto por defecto.

Los objetos radio y checkbox 

12.1 Propiedades de los objetos

propiedad descripción 

name Es el nombre que identifica a un checkbox a un grupo de radio buttons. Para que éstosúltimos conserven la capacidad de selección única, deben tener todos el mismonombre.

value

Es un valor asociado a cada checkbox o radio.

En el caso de los checkbox es útil asignar a un grupo de éstos con el mismo name

distintos valores. Pero si se quieres acceder a las propiedades de cada checkbox  separadamente mediante JavaScript, es mejor utilizar un name diferente para cadacheckbox , ya que de lo contrario (si todos tienen el mismo name) la propiedad valueresulta poco útil.

En el caso de los radio buttons es una propiedad necesaria siempre al tener todos elmismo name, aunque para su acceso mediante JavaScript, esta propiedad no es muyútil.

disabledbloquea el checkbox  o radio. Por lo tanto "No es enviado en el formulario" y "actúacomo si no existiese".

checkedmarca o comprueba si está marcado un checkbox  o un radio. Es una propiedadbooleana (que solo admite verdadero o falso) en la cual su valor será"true" (verdadero) si el objeto está marcado y "false" (falso) en caso que no lo esté.

length es la cantidad de radio  buttons que existe en un grupo determinado con el mismoname.

array que contiene todos los radio buttons que hay en un grupo con el mismo nombre.Para un grupo de 5 radio buttons con mismo nombre y diferente valor cada uno, para

 

Página 20 de 42Formularios y Javascript - Manual completo

Page 21: Manual Completo Formularios Javascript

5/8/2018 Manual Completo Formularios Javascript - slidepdf.com

http://slidepdf.com/reader/full/manual-completo-formularios-javascript-559ac095b0c00 21/42

 

 

12.2 Principales eventos 

12.3 Sintaxis básica Para un grupo de radio buttons (mismo nombre distinto valor)

<input type="radio" name="color"  value="rojo"><input type="radio" name="color"  value=" verde">

Para un grupo de checkbox (mismo nombre distinto valor)

<input type="checkbox" name="colores"  value="rojo"><input type="checkbox" name="colores"  value=" verde">

12.3 Ejemplos de aplicación I: Trabajando con la propiedad disabled  

Ejemplo #1 En este caso se habilitarán o deshabilitarán los checkbox dependiendo de la opción que seleccione el usuario de ungrupo de dos radio buttons.

El Script... 

<script languaje="javascript">

function habilita(form) {form.intereses[0].disabled = false;form.intereses[1].disabled = false;form.intereses[2].disabled = false;}

function deshabilita(form){form.intereses[0].disabled = true;form.intereses[1].disabled = true;form.intereses[2].disabled = true;}</script>

El Formulario... 

<form name="ejemplo1">¿Desea suscribirse a nuestro boletín de novedades? <br><input type="radio" name="boletin" value="si" checked  onClick="habilita(this.form)"> SI,quiero suscribirme.<input type="radio" name="boletin" value="no" onClick="deshabilita(this.form)"> No,gracias.<br><br>Seleccione los temas de su interés:<br><input type="checkbox" name="intereses" value="Arte y Cultura"> Arte y Cultura<br><input type="checkbox" name="intereses" value="Ciencia">Ciencia<br><input type="checkbox" name="intereses" value="Música">Música<br></form>

Los resultados... 

¿Desea suscribirse a nuestro boletín de novedades?

indexreferirnos al cuarto de ellos se debe usar la sintaxis:

formulario.nombre_radio[3]

evento descripción 

onFocus Permite realizar una acción al poner el foco en el objeto.

onBlur  Permite realizar una acción cuando el foco ya no se encuentra en el objeto.

onClick Permite realizar una acción cuando se hace click sobre el objeto.

onChange Evento que se produce al marcar/desmarcar un checkbox o un radio button.

 

Página 21 de 42Formularios y Javascript - Manual completo

Page 22: Manual Completo Formularios Javascript

5/8/2018 Manual Completo Formularios Javascript - slidepdf.com

http://slidepdf.com/reader/full/manual-completo-formularios-javascript-559ac095b0c00 22/42

 

SI, quiero suscribirme. No, gracias.

Seleccione los temas de su interés:

Arte y Cultura

Ciencia

Música

Ejemplo #2 En este caso se habilitarán o deshabilitarán los checkbox  dependiendo del valor de la propiedad checked de otrocheckbox .

El Script... 

<script languaje="javascript">function habilitaDeshabilita(form) {

if (form.boletin.checked == true){

form.intereses[0].disabled = false;form.intereses[1].disabled = false;form.intereses[2].disabled = false;}

if (form.boletin.checked == false){form.intereses[0].disabled = true;form.intereses[1].disabled = true;form.intereses[2].disabled = true;}

}</script>

El Formulario... 

<form name="ejemplo2">¿Desea suscribirse a nuestro boletín de novedades? <input type="checkbox" name="boletin"value="ON" checked  onClick="habilitaDeshabilita(this.form)"> SI, quiero suscribirme.<br><br>Seleccione los temas de su interés:<br><input type="checkbox" name="intereses" value="Arte y Cultura"> Arte y Cultura<br><input type="checkbox" name="intereses" value="Ciencia">Ciencia<br><input type="checkbox" name="intereses" value="Música">Música<br></form>

Los resultados... 

¿Desea suscribirse a nuestro boletín de novedades? SI, quiero suscribirme.

Seleccione los temas de su interés:

Arte y Cultura

Ciencia

Música

Los objetos radio y checkbox II 

13.1 Sintaxis básica para conocer el valor de todas las propiedades Para trabajar con el valor de las propiedades de un checkbox o de un radio button se trabaja de manera distinta que context y password . Aquí veremos primero, la sintaxis básica para conocer estos valores, y luego los aplicaremos a algunos

nmlkji nmlkj

gfedc

gfedc

gfedc

gfedcb

gfedc

gfedc

gfedc

 

Página 22 de 42Formularios y Javascript - Manual completo

Page 23: Manual Completo Formularios Javascript

5/8/2018 Manual Completo Formularios Javascript - slidepdf.com

http://slidepdf.com/reader/full/manual-completo-formularios-javascript-559ac095b0c00 23/42

 

ejemplos.13.1.1 Valor de value 

form.nombre_del_grupo[index].value 

Ejemplo:form.grupo1[0].valueform.grupo1[1].value

form.grupo1[2].value

13.1.2 Valor de name 

form.nombre_del_grupo.name 

Ejemplo:form.grupo1.name

13.1.3 Valor de disabled  

form.nombre_del_grupo[index].disabled  

Ejemplo:form.grupo1[0].disabled

form.grupo1[1].disabledform.grupo1[2].disabled

13.1.4 Valor de checked  

form.nombre_del_grupo[index].checked  

Ejemplo:form.grupo1[0].checkedform.grupo1[1].checkedform.grupo1[2].checked

13.1.5 Valor de length 

form.nombre_del_grupo.length 

Ejemplo:form.grupo1.length

13.2 Ejemplos de aplicación II: trabajando con el valor de las propiedades Como habrán podido observar en los ejemplos anteriores, seguramente notaron que para poder trabajar con un checkboxo un radio en forma particular, si pertenecen al mismo grupo, debe usarse el index . Por eso, decía anteriormente queconocer el valor de value es poco útil, a excepción que se necesite escribir ese valor en un campo de texto. Pero losejemplos "combinados" entre distintos objetos los dejaremos para más adelante. Nos limitaremos ahora, a estos dosobjetos.

Información del valor de todas las propiedades 

El Script... 

<script languaje="javascript">

function informar(form){nombreCasilla = form.colores[0].namevalorCasilla = form.colores[0].value

valorDisabled = ""valorChecked = ""

valorLength = form.colores.length

// definición de valorDisabled  if (form.colores[0].disabled == true)

{ valorDisabled = "está deshabilitada"; }else{ valorDisabled = "está habilitada"; }

// definición de valorChecked  

 

Página 23 de 42Formularios y Javascript - Manual completo

Page 24: Manual Completo Formularios Javascript

5/8/2018 Manual Completo Formularios Javascript - slidepdf.com

http://slidepdf.com/reader/full/manual-completo-formularios-javascript-559ac095b0c00 24/42

 

if (form.colores[0].checked == true){ valorChecked = "está seleccionada"; }else{ valorChecked = "no está seleccionada"; }

nombreCasillaStr = "El nombre de la primer casilla es: " + nombreCasillavalorCasillaStr = "El valor de la primer casilla es: " + valorCasillavalorDisabledStr = "La primer casilla " + valorDisabled

valorCheckedStr = "Esta casilla " + valorCheckedvalorLengthStr = "La cantidad total de casillas es: " + valorLength

// escribimos el mensaje de alertastrAlerta = nombreCasillaStr + "\n" + valorCasillaStr + "\n" + valorDisabledStr + "\n" +valorCheckedStr + "\n\n" + valorLengthStr

// lanzamos la acciónalert(strAlerta);}</script>

El formulario... 

<form name="ejemplo1">Colores:Verde <input type="checkbox" name="colores" value="Verde"><br>Azul <input type="checkbox" name="colores" value="Azul" disabled><br>Rojo <input type="checkbox" name="colores" value="Rojo" disabled><br><input type="button" value="Mostrar información" onClick="informar(this.form)"></form>

Los resultados... 

Colores:

Verde

Azul

Rojo

13.3 Ejemplos de aplicación III: trabajando con propiedad checked  

Lanzar una acción si un checkbox no se ha marcado Aceptar los términos de un contrato antes de suscribir el formulario

El Script... 

<script languaje="javascript">

function verificarCasilla(form) {

if (form.acepto.checked == false){alert("Debes aceptar los términos del contrato antes de continuar");form.acepto.focus(); return true;}

form.submit()}</script>

El formulario... 

<form name="contrato"><b>Formulario de suscripción al servicio de acceso a Internet 0610</b><br>... campos del formulario ...<br>

...<br><input type="checkbox" name="acepto"> Acepto los términos del contrato de suscripción<br><input type="button" value="Enviar" onClick="verificarCasilla(this.form)"></form>

gfedc

gfedc

gfedc

 

Mostrarinformación

Página 24 de 42Formularios y Javascript - Manual completo

Page 25: Manual Completo Formularios Javascript

5/8/2018 Manual Completo Formularios Javascript - slidepdf.com

http://slidepdf.com/reader/full/manual-completo-formularios-javascript-559ac095b0c00 25/42

 

 Los resultados... 

Formulario de suscripción al servicio de acceso a Internet 0610 ... campos del formulario ......

Acepto los términos del contrato de suscripción

El objeto textarea 

14.1 Propiedades básicas El objeto textarea en principio recibe el mismo tratamiento que que el objeto text [http://www.desarrolloweb.com/articulos/6.htm]

con algunas pocas diferencias. Tanto las propiedades, como los métodos y eventos son los mismos, solo se agregan lossiguientes:

El resto de las propiedades name, value, disabled, readonly, length y maxlength reciben la misma definición que parael objeto text  [http://www.desarrolloweb.com/articulos/6.htm]. La única excepción está en size que es reemplazado por cols yrows (ancho y alto respectivamente).

La propiedad value obtiene una pequeña diferencia con la definición dada en text por sobre todo en su sintáxis. Veamossu sintaxis básica:

14.2 Sintaxis básica 

<textarea cols="30" rows="5" name="nombre">texto que actúa como value </textarea>  

Para llamar a alguna de estas propiedades, se lo hace de idéntica forma que con text :

formulario.nombre_textarea. propiedad  

14.3 Principales métodos del objeto textarea Idénticos a los del objeto text [http://www.desarrolloweb.com/articulos/6.htm]. 

14.4 Principales eventos del objeto textarea Idénticos a los del objeto text [http://www.desarrolloweb.com/articulos/6.htm]. 

14.5 Ejemplos de aplicación 

Los ejemplos de aplicación dados en los capítulos 7.1 [http://www.desarrolloweb.com/articulos/7.htm],  8.1http://www.desarrolloweb.com/articulos/8.htm],  9.1 [http://www.desarrolloweb.com/articulos/9.htm]  y 10.1http://www.desarrolloweb.com/articulos/10.htm] correspondientes a los objetos text  y  password  son perfectamente

aplicables a este objeto. Bastará con solo reemplazar el nombre de los campos de texto (text) por los nombres delextarea.

Los objetos select y option 

15.1 SELECT: Propiedades principales 

gfedc

 

Enviar

propiedad descripción 

cols cantidad de columnas "ancho" de la caja de texto.

rows cantidad de filas "alto" de la caja de texto

propiedad descripción 

name nombre del select

size establece la cantidad de opciones que a primera vista se verán en el select

option es la principal propiedad ya que permite acceder a cada opción del select.

Página 25 de 42Formularios y Javascript - Manual completo

Page 26: Manual Completo Formularios Javascript

5/8/2018 Manual Completo Formularios Javascript - slidepdf.com

http://slidepdf.com/reader/full/manual-completo-formularios-javascript-559ac095b0c00 26/42

 

 15.2 SELECT: Sintaxis básica 

 <select name="nombre" size="3 " multiple>  <option value="valor 1">Texto de opción 1</option><option value="valor 2" selected>Texto de opción 2</option><option value="valor 3">Texto de opción 3</option><option value="valor 4">Texto de opción 4</option> </select>  

Muestra (selección múltiple):

manteniendo apretada la tecla Ctrl (control) puede seleccionarse más de una opción 

Muestra (selección simple):

valor de size "3" 

valor de size "1" solo puede seleccionarse una opción en cualquiera de los dos casos 15.3 SELECT: Métodos del objeto 

15.4 SELECT: Eventos del objeto 

15.5 OPTION: Propiedades principales 

15.6 OPTION: Métodos y eventos El objeto option no posee métodos ni eventos propios.

15.7 Sintaxis básica general: llamando a las propiedades En la siguiente lista veremos la forma correcta de llamar a cada propiedad en ambos objetos.

disabledsi su valor es "true", bloquea el select y no permite realizar ningún tipo de selección. Si su valor es "false"contrarresta el efecto anterior.

multiple permite al usuario seleccionar más de una opción (mediante la tecla Ctrl)

type informa si el select es del tipo multiple o simple.

 

Textodeopción1

Textodeopción2

Textodeopción3

Textodeopción1

Textodeopción2

Textodeopción3

Textodeopción2

método descripción 

focus coloca el foco en el select

evento descripción 

onFocus se produce al colocar el foco en el select

onBlur  se produce al abandonar el select (al quitar el foco)

onChange se produce al realizar un cambio de selección

propiedad descripción 

value valor asociado a cada opción del select. Es invisible al usuario pero es el valor que se envía junto al formulario.

text es el texto que ve el usuario que se encuentra contenido entre las etiquetas <option> y </option>

selected indica si una opción está seleccionada.

selectedIndex Da acceso a la opción (option) que ha seleccionado el usuario.

indexal igual que en form, o checkbox, este array contiene todas las opciones pertenecientes a unselect y tambien comienza por 0.

length Cuenta la cantidad de opciones (option) que conforman un select

Página 26 de 42Formularios y Javascript - Manual completo

Page 27: Manual Completo Formularios Javascript

5/8/2018 Manual Completo Formularios Javascript - slidepdf.com

http://slidepdf.com/reader/full/manual-completo-formularios-javascript-559ac095b0c00 27/42

 

 

15.8 El constructor new Option Este constructor nos permite introducir nuevas opciones dentro de un select . Su sintaxis básica es la siguiente:

variable = new Option("text","value","defaultSelected ","selected ")

Para introducir esta nueva opción en un select se debe usar la siguiente sintaxis:

nombre_formulario.nombre_select.options[index ] = variable

Para borrar una opción existente de un select la sintaxis es la siguiente:

nombre_formulario.nombre_select.options[index ] = null

El objeto select II 

16.1 Ejemplos de aplicación 

Trabajando con la propiedad disabled  

Veremos el caso en que un usuario debe elegir un producto de una lista y la cantidad que desea comprar, de otra lista.Pero esto último, solo podrá hacerlo, si ya ha seleccionado un producto.

El Script... 

<script languaje="javascript">function habilitar(form) {

if (form.productos[0].selected == true){form.cantidad.disabled = true;}else{form.cantidad.disabled = false;

}}</script>

El formulario... 

PROPIEDAD OBJETO SINTAXIS

name SELECT nombre_formulario.nombre_select.name

size SELECT nombre_formulario.nombre_select.size

option SELECT

nombre_formulario.nombre_select.options[index ]se refiere a una opción específica 

formulario.select.options[formulario.select.selectedIndex]. propiedad se refiere a la opción seleccionada por el usuario 

disabled SELECT nombre_formulario.nombre_select.disabled = true/false 

multiple SELECT nombre_formulario.nombre_select.multiple = true/false

type SELECT nombre_formulario.nombre_select.type

value OPTION

nombre_formulario.nombre_select.options[index ].valuese refiere a una opción específica 

formulario.select.options[formulario.select.selectedIndex].valuese refiere a la opción seleccionada por el usuario 

text OPTION nombre_formulario.nombre_select.options[index ].text

selected OPTION nombre_formulario.nombre_select.options[index ].selected = true/false

selectedIndex OPTION formulario.select.options[formulario.select.selectedIndex]. propiedad 

index OPTION nombre_formulario.nombre_select.options[index ]

length OPTION nombre_formulario.nombre_select.options.length

 

Página 27 de 42Formularios y Javascript - Manual completo

Page 28: Manual Completo Formularios Javascript

5/8/2018 Manual Completo Formularios Javascript - slidepdf.com

http://slidepdf.com/reader/full/manual-completo-formularios-javascript-559ac095b0c00 28/42

 

 <form name="ejemplo1" method="POST" target="_blank" action="pagina.htm"><select name="productos" onChange="habilitar(this.form)"><option value="">[Seleccione un producto]</option><option value="COD 001">COD 001: Producto 1</option><option value="COD 002">COD 002: Producto 2</option><option value="COD 003">COD 003: Producto 3</option></select>

<select name="cantidad" disabled><option value="">[cantidad]</option><option value="5">5 unidades</option><option value="10">10 unidades</option><option value="15">15 unidades</option></select>

<input type="submit" value="Enviar"></form>

Los resultados... 

rabajando con el constructor new Option Mediante este ejemplo, se generarán distintas opciones en la segunda lista dependiendo de la opción elegida en laprimera.

El Script... 

<script language="javascript">function agregarOpciones(form) {var selec = form.tipos.options;var combo = form.estilo.options;combo.length = null;

if (selec[0].selected == true){var seleccionar = new Option("<-- esperando selección","","","");combo[0] = seleccionar;}

if (selec[1].selected == true){var popular1 = new Option("Rock de los 90","Rock1","","");var popular2 = new Option("Rock de los 80","Rock2","","");combo[0] = popular1;combo[1] = popular2;}

if (selec[2].selected == true)

{var academica1 = new Option("Musica del Barroco","Barroco","","");var academica2 = new Option("Musica del Siglo XX","Siglo XX","","");var academica3 = new Option("Música del Romantisismo","Romantico","","");combo[0] = academica1;combo[1] = academica2;combo[2] = academica3;}

}</script>

El formulario... 

<form name="ejemplo2" method="POST" target="_blank" action="pagina.htm"><select name="tipos" onChange="agregarOpciones(this.form)"><option value="">[seleccione una opción]</option><option value="musicapopular">Música Popular (Rock)</option><option value="musicaacademica">Música Académica</option></select>

[Seleccioneunproducto] [cantidad] Enviar

Página 28 de 42Formularios y Javascript - Manual completo

Page 29: Manual Completo Formularios Javascript

5/8/2018 Manual Completo Formularios Javascript - slidepdf.com

http://slidepdf.com/reader/full/manual-completo-formularios-javascript-559ac095b0c00 29/42

 

 <select name="estilo"><option value=""><-- esperando selección</option></select>

<input type="submit" value="Enviar"></form>

Los resultados... 

alidar un select  Como en los dos ejemplos anteriores, vimos que existen opciones que tienen un valor nulo (value="" ). Se supone que eseipo de opciones, no debe ser enviada en un formulario, ya que no tienen ese valor. Este ejemplo, verificará que la opciónelegida, sea una opción válida.

El script... 

<script languaje="javascript">function validar(form) {

if (form.combo1.options[form.combo1.selectedIndex].value == ""){alert("Por favor, seleccione una opción válida");form.combo1.focus(); return true;}

form.submit();}</script>

El formulario... 

<form name="ejemplo3" method="POST" target="_blank" action="pagina.htm"><select name="combo1"><option value=" ">[seleccione una opción]</option>

<option value="opcion1">Opción 1</option><option value="opcion2">Opción 2</option><option value="opcion3">Opción 3</option></select><input type="button" value="Enviar" onClick="validar(this.form)"></form>

Los resultados... 

Modificar la propiedad text de un option Por algún motivo, puede resultar interesante modificar el texto de un option. Aquí veremos un ejemplo de como hacerlo.

El Script... 

<script languaje="javascript">function modificarTexto(form) {var selec = form.opciones.options;

if (select[0].selected == true){ selec[0].text = "Esta no es una opción válida"; form.opciones.focus(); }

else {select[form.opciones.selectedIndex].text = "Presione el botón enviar"; }

}</script>

El formulario... 

<form name="ejemplo4" method="POST" target="_blank" action="pagina.htm"><select name="opciones" onChange="modificarTexto(this.form)">

[seleccioneunaopción] <--esperandoselección Enviar

[seleccioneunaopción] Enviar

Página 29 de 42Formularios y Javascript - Manual completo

Page 30: Manual Completo Formularios Javascript

5/8/2018 Manual Completo Formularios Javascript - slidepdf.com

http://slidepdf.com/reader/full/manual-completo-formularios-javascript-559ac095b0c00 30/42

 

<option value=" ">[seleccione una opción]</option><option value="opcion1">Opción 1</option><option value="opcion2">Opción 2</option><option value="opcion3">Opción 3</option></select><input type="submit" value="Enviar"></form>

Los resultados... 

El objeto file 

17.1 Principales propiedades 

17.2 Principales eventos 

alidación de un formulario con Javascript 

Vamos realizar un ejemplo de un formulario completo para validar. Las validaciones se hacen en el propionavegador antes de enviarlo. Si hubo algún campo no relleno o con información errónea, el formulariomuestra el campo que está incorrecto y solicita al usuario que lo cambie. Si todos los datos del formularioson correctos se envía el formulario.

Hemos querido hacer un formulario sencillo, para que el ejercicio no se haga demasiado complicado. Noobstante, se realizan validaciones en campos con distintos valores, para hacerlo más variado. Secomprueba un campo donde debe figurar un texto, otro donde debe introducirse un número mayor que 18y un último con un campo select donde deben haber seleccionado un valor.

Se puede ver el ejemplo en funcionamiento [http://www.desarrolloweb.com/articulos/ejemplos/javascript/validar-

omulario.html] para hacerse una idea más exacta del objetivo buscado.

El código del formulario

El formulario con el que vamos a trabajar es el siguiente:

<form name="fvalida"><table>

 

[seleccioneunaopción] Enviar

propiedad descripción 

name nombre que identifica el objeto

size ancho de la caja de texto

disabled deshabilita el campo de texto y el botón del objeto file

evento descripción 

onFocus Permite realizar una acción al poner el foco en el campo. Es un evento bastantemolesto, porque en realidad, actúa en forma similar al evento onClick, bloqueando elcampo.

onBlur  Permite realizar una acción cuando el foco ya no se encuentra en el campo. Tal vez,es un poco más útil que el anterior, ya que solo podría lanzarse una acción, en casoque el campo se encuentre vacío.

Referencia: para comprender este ejercicio hace falta conocer el trabajo con formularios con Javascript[http://www.desarrolloweb.com/manuales/50/]. Podemos aprender también Javascript desde cerohttp://www.desarrolloweb.com/javascript/, si es que fuera necesario.

Página 30 de 42Formularios y Javascript - Manual completo

Page 31: Manual Completo Formularios Javascript

5/8/2018 Manual Completo Formularios Javascript - slidepdf.com

http://slidepdf.com/reader/full/manual-completo-formularios-javascript-559ac095b0c00 31/42

 

<tr><td>Nombre: </td><td><input type="text" name="nombre" size="30" maxlength="100"></td>

</tr><tr>

<td>Edad: </td><td><input type="text" name="edad" size="3" maxlength="2"></td>

</tr>

<tr><td>Interés:</td><td><select name=interes><option value="Elegir">Elegir<option value="Comercial">Contacto comercial<option value="Clientes">Atención al cliente<option value="Proveedores">Contacto de proveedores</select></td>

</tr><tr>

<td colspan="2" align="center"><input type="button" value="Enviar"onclick="valida_envia()"></td></tr></table></form>

Es un formulario cualquiera. Los únicos puntos donde debemos prestar atención son: El nombre del formulario, "fvalida", que utilizaremos para referirnos al él mediante Javascript.

El botón de enviar, que en lugar de ser un submit corriente, es un botón que llama a una función, que se encargade validar el formulario y enviarlo si todo fue correcto.

Función Javascript para validar el formulario 

Ahora veremos la función que hemos creado para validar el formulario. Se llama valida_envia().Simplemente, para cada campo del formulario, comprueba que el valor introducido es correcto. Si no escorrecto, muestra un mensaje de alerta, pone el foco de la aplicación en el campo que ha dado el error yabandona la función retornando el valor 0.

Si todos los campos eran correctos, la función continúa hasta el final, sin salirse, por no estar ningúncampo incorrecto. Entonces ejecuta la sentencia última, que es el envío del formulario.

Veamos la función entera, aunque luego la expliquemos por partes.

function valida_envia(){//valido el nombreif (document.fvalida.nombre.value.length==0){

alert("Tiene que escribir su nombre")document.fvalida.nombre.focus()return 0;

}

//valido la edad. tiene que ser entero mayor que 18edad = document.fvalida.edad.valueedad = validarEntero(edad)document.fvalida.edad.value=edadif (edad==""){

alert("Tiene que introducir un número entero en su edad.")document.fvalida.edad.focus()return 0;

}else{if (edad<18){

alert("Debe ser mayor de 18 años.")document.fvalida.edad.focus()return 0;

}}

//valido el interésif (document.fvalida.interes.selectedIndex==0){

alert("Debe seleccionar un motivo de su contacto.")document.fvalida.interes.focus()

Página 31 de 42Formularios y Javascript - Manual completo

Page 32: Manual Completo Formularios Javascript

5/8/2018 Manual Completo Formularios Javascript - slidepdf.com

http://slidepdf.com/reader/full/manual-completo-formularios-javascript-559ac095b0c00 32/42

 

return 0;}

//el formulario se enviaalert("Muchas gracias por enviar el formulario");document.fvalida.submit();

}

En el primer bloque se valida el campo nombre. La validación que se hace es simplemente si se ha escritoalgo en el campo. Para ello comprueba si el número de caracteres escritos en el campo nombre es cero.En ese caso, muestra el mensaje de alerta, sitúa el foco en el campo de texto y se sale de la funcióndevolviendo el valor 0.

La validación de la edad mayor que 18 años tiene dos partes. Primero debemos comprobar que en elcampo de texto hay escrito un valor entero. Luego, si teníamos un entero, habría que comprobar que esmayor que 18. Para hacer esta validación nos vamos a apoyar en una función que ya hemos visto en otro

artículo de DesarrolloWeb.com, que habla sobre cómo validar un entero en un campo de formulario[http://www.desarrolloweb.com/articulos/707.php]. Esa función devuelve un string vació en caso de que no seaun entero y el propio entero, si es que lo era.

Antes de realizar la validación de la edad propiamente dicha, se obtiene el valor introducido en el campode formulario edad y se guarda en una variable llamada edad. Luego se ejecuta la función pasando estaedad. Su resultado lo utilizamos para volcarlo otra vez al campo de texto. Entonces, se comprueba si elvalor devuelto por la función es un string vacío. En ese caso, es que el valor escrito en el formulario no eraun entero, por lo que se muestra el mensaje de error, se sitúa el foco y se sale de la función.

En caso de que el campo edad contuviese un entero, se debe comprobar a continuación si es mayor que18. En caso de que sea menor, se muestra el error y se sale. En caso contrario -entonces el valor seríamayor o igual que 18-, se continúa con las comprobaciones.

Por último se valida el campo select, donde aparece el interés del supuesto visitante, que le motiva paraenviarnos el formulario. En ese campo se debe haber seleccionado cualquier opción menos la primera.Para asegurarnos, simplemente se comprueba si el atributo selectedIndex del campo select tiene el valor0. Ese atributo almacena el índice seleccionado en el menú desplegable. El primer campo tiene el índice 0,el segundo el índice 1...

Si se comprueba que selectedIndex vale 0, se muestra un mensaje de alerta, se pone el foco en el campodel formulario y se sale de la función.

Si hemos llegado hasta este punto sin salirnos de la función es que todos los campos del formularioestaban rellenos correctamente. En ese caso se debe enviar el formulario. Antes de enviar el formulario semuestra un mensaje de alerta, agradeciendo que se haya rellenado correctamente. Este mensaje se puedesuprimir si se desea.

Para enviar el formulario se hace una llamada al método submit() de dicho formulario.

Conclusión 

Este ejercicio es de lo más básico y útil que se puede hacer en Javascript. Requiere ciertos conocimientos,ya ligeramente avanzados, pero en el fondo no resulta complicado. Incluso ampliarlo es bastante sencillo,siempre que sigamos un esquema similar para cada uno de los campos.

Podemos ver el resultado obtenido en una página aparte

[http://www.desarrolloweb.com/articulos/ejemplos/javascript/validar-fomulario.html].

Marcar o desmarcar todos los checkbox de un formulario conJavascript 

El ejercicio que vamos a relatar en este artículo es bastante típico de trabajo con formularios en

Nota: el foco de la aplicación es el lugar donde está situado el cursor. El foco puede estar en cualquiersitio. Por ejemplo en un campo de texto, en un select, en un enlace o en la propia página. Si presionamosuna tecla del teclado afecta al lugar donde está situado el foco. Si, por ejemplo, el foco está en un campode texto, al operar con el teclado estaremos escribiendo en ese campo de texto.

Página 32 de 42Formularios y Javascript - Manual completo

Page 33: Manual Completo Formularios Javascript

5/8/2018 Manual Completo Formularios Javascript - slidepdf.com

http://slidepdf.com/reader/full/manual-completo-formularios-javascript-559ac095b0c00 33/42

 

Javascript. Se trata de hacer un enlace para que se puedan marcar todos los campos checkbox que hayaen un formulario de una sola vez, es decir, sin tener que pulsarlos uno a uno para marcarlos todos.También haremos la función que permita deseleccionar todos los campos checkbox del formulario de unasola vez.

El ejercicio es simple de entender, pero podemos verlo en funcionamiento en una página aparte

[http://www.desarrolloweb.com/articulos/ejemplos/tallerjs/formulario-check.html para hacernos una idea exacta de

nuestras intenciones.

El formulario HTML 

Tenemos un formulario creado con HTML que es donde estarán los checkboxes que hay que marcar ydesmarcar automáticamente. El formulario es muy sencillo. Lo vemos a continuación.

<form name="f1">Nombre: <input type="text" name="nombre"><br><input type="checkbox" name="ch1"> Opcion 1<br><input type="checkbox" name="ch2"> Opcion 2<br><input type="checkbox" name="ch3"> Opcion 3<br><input type="checkbox" name="ch4"> Opcion 4<br>//Otro campo de formulario:<select name=otro><option value="1">Seleccion 1<option value="2">Seleccion 2</select><br><input type="submit"><br><br><a href="javascript:seleccionar_todo()">Marcar todos</a> |<a href="javascript:deseleccionar_todo()">Marcar ninguno</a>

</form>

Lo único que debemos fijarnos es que hemos colocado diversos tipos de elementos en el formulario. Enrealidad sólo vamos a trabajar con el estado de los checkbox, pero hemos incluido otros elementos porquelo habitual en un formulario es que hayan elementos de varios tipos.

Al final del formulario tenemos un par de enlaces para marcar o desmarcar todos los checkboxes de unasola vez. Estos enlaces llaman a un par de funciones Javascript que veremos ahora.

Funciones de Javascript 

function seleccionar_todo(){for (i=0;i<document.f1.elements.length;i++)

if(document.f1.elements[i].type == "checkbox")

document.f1.elements[i].checked=1}

La función seleccionar_todo() realiza un recorrido por todos los elementos del formulario. Para hacer unrecorrido por todos los campos se utiliza el array "elements", que guarda una referencia con cadaelemento que haya dentro del formulario.

En el recorrido comprueba si el elemento actual es de tipo "checkbox" (recordar que el array elementscontiene todos los elementos, pero sólo deseamos operar con los que sean checkbox) y en ese caso,simplemente se actualiza el atributo "checked" al valor 1, con lo que el chekbox se marcará.

function deseleccionar_todo(){for (i=0;i<document.f1.elements.length;i++)

if(document.f1.elements[i].type == "checkbox")

document.f1.elements[i].checked=0}

La función deseleccionar_todo() es casi igual que la anterior. Realiza un recorrido a todos los elementos y

Página 33 de 42Formularios y Javascript - Manual completo

Page 34: Manual Completo Formularios Javascript

5/8/2018 Manual Completo Formularios Javascript - slidepdf.com

http://slidepdf.com/reader/full/manual-completo-formularios-javascript-559ac095b0c00 34/42

 

en el caso que sean checkbox, se fija a cero el atributo "checked" para que la caja de selección se quededesmarcada.

El ejemplo no tiene más misterio. Se puede ver en marcha en una página aparte

[http://www.desarrolloweb.com/articulos/ejemplos/tallerjs/formulario-check.html].

Anexo I: Rutinas JS para aplicar a formularios 

1. Colocar el foco en un determinado campo al cargar la página 

<BODY onLoad="this.document.ejemplo1.campo1.focus()">

<form name="ejemplo1" method="GET" action="pagina.htm" target="_blank">Escribe tu nombre: <input type="text" name="campo1" size="15"><input type="submit" value="Enviar"></form>

Escribe tu nombre:

2. Convierte la primer letra de cada palabra en mayúscula 

<script language="javascript">function Convertir(objeto){var index;var tmpStr;var tmpChar;var preString;var postString;

var strlen;tmpStr = objeto.value.toLowerCase();strLen = tmpStr.length;

if (strLen > 0){for (index = 0; index < strLen; index++)

{if (index == 0)

{tmpChar = tmpStr.substring(0,1).toUpperCase();postString = tmpStr.substring(1,strLen);tmpStr = tmpChar + postString;}else

{tmpChar = tmpStr.substring(index, index+1);if (tmpChar == " " && index < (strLen-1)){tmpChar = tmpStr.substring(index+1, index+2).toUpperCase();preString = tmpStr.substring(0, index+1);postString = tmpStr.substring(index+2,strLen);tmpStr = preString + tmpChar + postString;}

}}

}objeto.value = tmpStr;}</script>

<form name="ejemplo2" method="GET" action="pagina.htm" target="_blank">Escribe tu nombre: <input type="text" name="campo1" size="15" onKeyUp="Convertir(this.ejemplo2.campo1)">

Enviar

Página 34 de 42Formularios y Javascript - Manual completo

Page 35: Manual Completo Formularios Javascript

5/8/2018 Manual Completo Formularios Javascript - slidepdf.com

http://slidepdf.com/reader/full/manual-completo-formularios-javascript-559ac095b0c00 35/42

 

<input type="submit" value="Enviar"></form>

Escribe tu nombre:

. Convierte la primer letra del texto en mayúsculas (al enviar el formulario)

<script language="javascript">function Convertir2(form){texto=form.campo1.value+" ";texto=texto.toLowerCase();texto1="";punc=",.?!:;)'";punc+='"';while ((texto.length>0)&&(texto.indexOf(" ")>-1))

{pos=texto.indexOf(" ");

wrd=texto.substring(0,pos);wrdpre="";if (punc.indexOf(wrd.substring(0,1))>-1){wrdpre=wrd.substring(0,1);wrd=wrd.substring(1,wrd.length);}cmp=" "+wrd+" ";for (var i=0;i<9;i++){p=wrd.indexOf(punc.substring(i,i+1));

if (p==wrd.length-1){cmp=" "+wrd.substring(0,wrd.length-1)+" ";i=9;

}}

if (cmp.indexOf(cmp)<0){ltr=wrd.substring(0,1);ltr=ltr.toUpperCase();wrd=ltr+wrd.substring(1,wrd.length);}texto1+=wrdpre+wrd+" ";texto=texto.substring((pos+1),texto.length);}

ltr=texto1.substring(0,1);ltr=ltr.toUpperCase();texto1=ltr+texto1.substring(1,texto1.length-1);form.campo1.value=texto1;}</script>

<form name="ejemplo3" method="GET" action="pagina.htm" target="_blank">Escribe tu nombre: <input type="text" name="campo1" size="15"><input type="button" value="Enviar" onClick="Convertir2(this.form)"></form>

Escribe tu nombre:

. Escribe un valor indicado en otra ventana, en el formulario abierto 

Formulario de la página actual<form name="ejemplo8" method="GET" action="pagina.htm" target="_blank">

 

Enviar

Enviar

Página 35 de 42Formularios y Javascript - Manual completo

Page 36: Manual Completo Formularios Javascript

5/8/2018 Manual Completo Formularios Javascript - slidepdf.com

http://slidepdf.com/reader/full/manual-completo-formularios-javascript-559ac095b0c00 36/42

 

Por favor, introduce el código correspondiente al colorCódigo color: <input type="text" name="campo1" size="7"><a onClick="window.open('ejemplos/ paleta.htm ',null,'widht=150,height=100')"style="cursor: hand">Ver Paleta</a><input type="submit" value="Enviar"></form>

Paleta de colores (paleta.htm)

<form name="colores"><input type="radio" name="color" value="#800000"onClick="opener.document.ejemplo8.campo1.value=colores.color[0].value"><fontcolor="#800000">marrón</font><br><input type="radio" name="color" value="#FF00FF"onClick="opener.document.ejemplo8.campo1.value=colores.color[1].value"><fontcolor="#FF00FF">fucsia</font><br><a href="javascript:window.close()"><b>x cerrar ventana</b></a></form>

Por favor, introduce el código correspondiente al color

Código color: Ver Paleta 

. Comprueba que el valor ingresado en dos campos no sea el mismo 

<script languaje="javascritp">function validarCampos1(form){

if(form.campo1.value == form.campo2.value){alert("La contraseña no puede ser igual al nombre de usuario");

form.campo2.value = ""; form.campo2.focus(); return true;}form.submit()}</script>

<form name="ejemplo9" method="POST" action="pagina.htm" target="_blank">Usuario: <input type="text" name="campo1"><br>Contraseña: <input type="password" name="campo2"><br><input type="button" value="Registrarse" onClick="validarCampos1(this.form)"></form>

Usuario:

Contraseña:

. Comprueba que el valor ingresado en dos campos sea igual 

<script languaje="javascritp">function validarCampos2(form){

if(form.campo2.value == form.campo1.value){ form.submit(); }else

{alert("La repetición de la contraseña no coincide.");form.campo2.value = ""; form.campo2.focus(); return true;}

}

 

Enviar

Registrarse

Página 36 de 42Formularios y Javascript - Manual completo

Page 37: Manual Completo Formularios Javascript

5/8/2018 Manual Completo Formularios Javascript - slidepdf.com

http://slidepdf.com/reader/full/manual-completo-formularios-javascript-559ac095b0c00 37/42

 

</script>

<form name="ejemplo10" method="POST" action="pagina.htm" target="_blank">Contraseña: <input type="password" name="campo1"><br>Repetir contraseña: <input type="password" name="campo2"><br><input type="button" value="Registrarse" onClick="validarCampos2(this.form)"></form>

Contraseña:

Repetir contraseña:

. Permite seleccionar solo una determinada cantidad de checkbox del mismo nombre 

<script language="javascript">function limitarSelección(casilla,form){

a = casilla.form.casilla1[0].checked;b = casilla.form.casilla1[1].checked;c = casilla.form.casilla1[2].checked;d = casilla.form.casilla1[3].checked;e = casilla.form.casilla1[4].checked;

contador = (a ? 1 : 0) + (b ? 1 : 0) + (c ? 1 : 0) + (d ? 1 : 0) + (e ? 1 : 0);

if (contador > 3){alert("Solo puedes seleccionar 3 opciones");casilla.checked = false;}

}</script>

<form name="ejemplo11" method="GET" action="pagina.htm" target="_blank">Por favor, seleccione 3 opciones como máximo:<br><input type="checkbox" name="casilla1" value="Opcion 1" onClick="limitarSelección(this,this.form)">Opción 1<br><input type="checkbox" name="casilla1" value="Opcion 2" onClick="limitarSelección(this,this.form)">Opción 2<br><input type="checkbox" name="casilla1" value="Opcion 3" onClick="limitarSelección(this,this.form)">Opción 3<br><input type="checkbox" name="casilla1" value="Opcion 4" onClick="limitarSelección(this,this.form)">Opción 4<br><input type="checkbox" name="casilla1" value="Opcion 5" onClick="limitarSelección(this,this.form)">Opción 5<br><input type="submit" value="Enviar">

</form>

Por favor, seleccione 3 opciones como máximo:

Opción 1

Opción 2

Opción 3

Opción 4

Opción 5

. Selecciona todos los checkbox con un solo click o los deselecciona 

<script language="javascript">

Registrarse

gfedc

gfedc

gfedc

gfedc

gfedc

Enviar

Página 37 de 42Formularios y Javascript - Manual completo

Page 38: Manual Completo Formularios Javascript

5/8/2018 Manual Completo Formularios Javascript - slidepdf.com

http://slidepdf.com/reader/full/manual-completo-formularios-javascript-559ac095b0c00 38/42

 

function todos(form){

for (i = 0; i < form.casilla1.length; i++)form.casilla1[i].checked = true;form.desmarcatodos.checked = false;

}

function ninguno(form)

{for (i = 0; i < form.casilla1.length; i++)form.casilla1[i].checked = false;form.marcatodos.checked = false;

}</script>

<form name="ejemplo12" method="GET" action="pagina.htm" target="_blank"><input type="checkbox" name="marcatodos" onClick="todos(this.form)">Marcar todos |<input type="checkbox" name="desmarcatodos" onClick="ninguno(this.form)">Desmarcar todos<hr><input type="checkbox" name="casilla1" value="Opcion 1">Opción 1<br><input type="checkbox" name="casilla1" value="Opcion 2">Opción 2<br><input type="checkbox" name="casilla1" value="Opcion 3">Opción 3<br><input type="checkbox" name="casilla1" value="Opcion 4">Opción 4<br><input type="checkbox" name="casilla1" value="Opcion 5">Opción 5<br><hr><input type="submit" value="Enviar"></form>

Marcar todos | Desmarcar todos

Opción 1

Opción 2

Opción 3

Opción 4

Opción 5

. Selecciona todos los checkbox con un solo click o los deselecciona o invierte la selección 

<script language="javascript">function todos2(form){

for (i = 0; i < form.casilla1.length; i++)

form.casilla1[i].checked = true;form.desmarcatodos.checked = false;form.invierte.checked = false;

}

function ninguno2(form){

for (i = 0; i < form.casilla1.length; i++)form.casilla1[i].checked = false;form.marcatodos.checked = false;form.invierte.checked = false;

}

function invertir(form){

for (i = 0; i < form.casilla1.length; i++)form.casilla1[i].checked = !form.casilla1[i].checked;form.marcatodos.checked = false;form.desmarcatodos.checked = false;

gfedc gfedc

gfedc

gfedc

gfedc

gfedcgfedc

Enviar

Página 38 de 42Formularios y Javascript - Manual completo

Page 39: Manual Completo Formularios Javascript

5/8/2018 Manual Completo Formularios Javascript - slidepdf.com

http://slidepdf.com/reader/full/manual-completo-formularios-javascript-559ac095b0c00 39/42

 

}</script>

<form name="ejemplo13" method="GET" action="pagina.htm" target="_blank"><input type="checkbox" name="marcatodos" onClick="todos(this.form)">Marcar todos |<input type="checkbox" name="desmarcatodos" onClick="ninguno(this.form)">Desmarcar todos|<input type="checkbox" name="invierte" onClick="invertir(this.form)">Invertir selección

<hr><input type="checkbox" name="casilla1" value="Opcion 1">Opción 1<br><input type="checkbox" name="casilla1" value="Opcion 2">Opción 2<br><input type="checkbox" name="casilla1" value="Opcion 3">Opción 3<br><input type="checkbox" name="casilla1" value="Opcion 4">Opción 4<br><input type="checkbox" name="casilla1" value="Opcion 5">Opción 5<br><hr><input type="submit" value="Enviar"></form>

Marcar todos | Desmarcar todos | Invertir selección

Opción 1

Opción 2

Opción 3

Opción 4

Opción 5

10. Cuenta la cantidad de checkbox o radio que hay seleccionados 

<script languaje="javascript">function ContarCasillas(form){var total = 0;var maximo = form.casilla1.length;

for(i = 0; i < maximo; i++)if (form.casilla1[i].checked == true){ total +=1; }

alert("Se han seleccionado " + total + " opciones")}</script>

<form name="ejemplo14" method="GET" action="pagina.htm" target="_blank"><input type="checkbox" name="casilla1" value="Rojo">Rojo<br><input type="checkbox" name="casilla1" value="Azul">Azul<br><input type="checkbox" name="casilla1" value="Amarillo">Amarillo<br><input type="checkbox" name="casilla1" value="Verde">Verde<br><input type="button" value="Contar casillas" onClick="ContarCasillas(this.form)"></form>

Rojo

Azul

Amarillo

Verde

gfedc gfedc gfedc

gfedcgfedc

gfedc

gfedc

gfedc

Enviar

gfedc

gfedc

gfedc

gfedc

Contarcasillas

Página 39 de 42Formularios y Javascript - Manual completo

Page 40: Manual Completo Formularios Javascript

5/8/2018 Manual Completo Formularios Javascript - slidepdf.com

http://slidepdf.com/reader/full/manual-completo-formularios-javascript-559ac095b0c00 40/42

 

 

Anexo II: Más rutinas Javascript 

11. Aumenta o disminuye un valor  

<script languaje="javascript">function validaCantidad(form){

if(form.cantidad.value < 1){form.cantidad.value = 1;alert("No puede comprar menos de 1 producto");}

if(form.cantidad.value > 10){form.cantidad.value = 10;alert("La cantidad máxima de productos a comprar es de 100 productos");}

}</script>

<form name="ejemplo15" method="POST" action="pagina.htm" target="_blank">Producto seleccionado: <b>COD. 7548-65 CD-R IPC</b> Cantidad:<input type="text" name="cantidad" value="1" size="2" ReadOnly><input type="button" value="aumentar" onClick="ejemplo15.cantidad.value++;validaCantidad(this.form)"><input type="button" value="disminuir" onClick="ejemplo15.cantidad.value--;"validaCantidad(this.form)></form>

Producto seleccionado: COD. 7548-65 CD-R IPC Cantidad:

12. Cuenta la cantidad de palabras introducidas en un textarea 

<script languaje="javascript">function contarPalabras(form){texto = form.mensaje.valuetexto = texto.split(" ")form.cantidad.value=texto.length}</script>

<form name="ejemplo16" method="POST" action="pagina.htm" target="_blank"><b>Por favor, redacte aquí su mensaje</b> Palabras escritas:<input type="text" name="cantidad" value="0" size="2"><br><textarea rows="4" cols="35" name="mensaje" onKeyPress="contarPalabras(this.form); if(event.keycode1 == 13) form.mensaje.value +=' ';"></textarea><br><input type="submit" value="Enviar"></form>

Por favor, redacte aquí su mensaje Palabras escritas:

1 aumentar disminuir

0

Enviar

Página 40 de 42Formularios y Javascript - Manual completo

Page 41: Manual Completo Formularios Javascript

5/8/2018 Manual Completo Formularios Javascript - slidepdf.com

http://slidepdf.com/reader/full/manual-completo-formularios-javascript-559ac095b0c00 41/42

 

 13. Muestra o esconde el botón "submit" Esconde el botón submit si los campos están vacíos

<script languaje="javascript">function esconde(form){

if ((form.nombre.value != "") && (form.apellido.value != ""))

{ form.enviar.style.visibility = "visible"; }

else {form.enviar.style.visibility = "hidden"; }

}</script>

<form name="ejemplo17" method="POST" action="pagina.htm" target="_blank">Nombre: <input type="text" name="nombre" size="20" onKeyUp="esconde(this.form)"><br>Apellido: <input type="text" name="apellido" size="20" onKeyUp="esconde(this.form)"><br><input type="submit" name="enviar" value="Enviar" style="visibility: hidden"></form>

Nombre:

Apellido:

14. Habilita o deshabilita el botón "submit" Deshabilita el botón submit si los campos están vacíos

<script languaje="javascript">function deshabilita(form){

if ((form.nombre.value != "") && (form.apellido.value != "")){ form.enviar.disabled = false; }

else {form.enviar.disabled = true; }

}</script>

<form name="ejemplo18" method="POST" action="pagina.htm" target="_blank">Nombre: <input type="text" name="nombre" size="20" onKeyUp="deshabilita(this.form)"><br>Apellido: <input type="text" name="apellido" size="20" onKeyUp="deshabilita(this.form)"><br><input type="submit" name="enviar" value="Enviar" disabled></form>

Nombre:

Apellido:

15. Mensaje de confirmación al borrar un formulario 

<script languaje="javascript">function ConfirmarBorrado(form){

borrar = window.confirm('Se borrarán todos los datos del formulario');(borrar)?form.reset():'return false';}</script>

EnviarEnviar

Página 41 de 42Formularios y Javascript - Manual completo

Page 42: Manual Completo Formularios Javascript

5/8/2018 Manual Completo Formularios Javascript - slidepdf.com

http://slidepdf.com/reader/full/manual-completo-formularios-javascript-559ac095b0c00 42/42

 

<form name="ejemplo19" method="POST" action="pagina.htm" target="_blank">Nombre: <input type="text" name="nombre" size="20"><br>Apellido: <input type="text" name="apellido" size="20"><br><input type="button" value="Borrar" onClick="ConfirmarBorrado(this.form)"></form>

Nombre:

Apellido:

16. Mensaje de confirmación al enviar un formulario 

<script languaje="javascript">function ConfirmarEnvio(form){enviar = window.confirm('Se enviarán todos los datos del formulario');(enviar)?form.submit():'return false';

}</script>

<form name="ejemplo20" method="POST" action="pagina.htm" target="_blank">Nombre: <input type="text" name="nombre" size="20"><br>Apellido: <input type="text" name="apellido" size="20"><br><input type="button" value="Enviar" onClick="ConfirmarEnvio(this.form)"></form>

Nombre:

Apellido:

utores del manual: 

Hay que agradecer a diversas personas la dedicación prestada para la creación de este manual. Susnombres junto con el número de artículos redactados por cada uno son los siguientes:

Eugenia Bahit Desarrolladora ASP y PHPhttp://www.cmzk.com.ar/ (20 capítulos) 

Miguel Angel Alvarez Director de DesarrolloWeb.com(2 capítulos) 

Todos los derechos de reproducción y difusión [http://www.desarrolloweb.com/copyright/] reservados a Guiarte

Multimedia S.L. [http://www.guiartemultimedia.com/] 

Volver [http://www.desarrolloweb.com/manuales/50] 

Borrar

Enviar

Página 42 de 42Formularios y Javascript - Manual completo