Et.Form Atributos Controles

Indice

Etiqueta form

¿Que se puede hacer con los formularios en la parte cliente?

  1. Interactuar, por ejemplo, como ayuda para completar la entrada
  2. Recibir y enviar datos. Se verá más adelante en el curso
  3. Validar datos antes de enviar al servidor

La etiqueta form es un elemento de bloque y por lo tanto puede contener elementos propios del documento html

Ejemplo de formulario


    

Nombre:

Año de nacimiento:

Sexo: Hombre Mujer

Que tiene el siguiente aspecto

Nombre:

Año de nacimiento:

Sexo: Hombre Mujer


Atributos de form

Los atributos principales de la etiqueta form son:

Otros atributos

Controles en formularios

Dentro del formularios se pueden incluir controles de entrada de datos, como por ejemplo:

Estos controles tienen algunos atributos comunes

Tipos de controles

Los controles de entrada de datos tienen algunos tipos específicos. La mayoria de las entradas utilizan el control input

label

El control label es un control que no recibe datos, y solo se utiliza para mostrar texto. El atributo for es obligatorio para que funcione correctamente y se asocie la etiqueta al control mediante el identificador de este

Ejemplo:
>
                

input

button

select

textarea

fieldset

legend

option

optgroup

datalist

keygen

output

progress

meter

details

summary

menu

menuitem

La diferencia entre el control button y el control input es que el control button El contenido del botón input se define mediante el atributo value, por lo que sólo puede contener texto. El contenido del botón button se escribe dentro del elemento, por lo que puede incluir texto e imágenes.

Forms desde Javascript

El objeto form de javascript

Se puede acceder al objeto formulario mediante el objeto document.forms que es un array de objetos form.

El objeto form es un objeto que contiene todos los controles del formulario.

 
                   var formulario = document.forms[0];
                

A su vez los componenetes del formulario están disponibles en un array para cada formulario:

 
                var formulario = document.forms[0];
                var controles = formulario.elements;
                var un_control = controles[0];
                // lo mismo de otra forma 
                var un_control = document.forms[0].elements[0];
             

El inconveniente es que si se cambia el orden en el formulario podemos obtener efectos indeseados.

Tenemos una segunda forma de acceder usando el nombre


                

Y en javascript var formulario = document.forms.mi_formulario; var un_nombre = formulario.ElNombre; También serviría: var un_nombre = document.getElementById("mi_formulario").ElNombre;

Propiedades y métodos de los controles de formulario

Propiedades:

Alguno de los eventos utilizados con formularios y sus controles:

Para obtener los valores de los controles de formulario

Texto y text area

Directamente del atributo value

                var nombre = document.getElementById("nombre").value;
              

Radio botón

En este caso nos interesa saber que radiobutton del grupo está seleccionado. Para eso consultamos la propiedad checked

                   SI
                     NO
                     NS/NC
                    
                    y con el código javascript ( por ejemplo con el evento onsubmit )

                    for(var i=0; i

Checkbox

De forma similar, pero podemos tener varios seleccionados. Para eso consultamos la propiedad checked de cada control.

Validad formularios en el lado cliente

Validamos para: Tenemos dos formas de validar los datos en el lado cliente:

Validación de formulario incorporado

Algunos de los atributos de validación:

Si los datos son válidos Si los datos NO son válidos:

Validación con javascript

Usando DOM form


            function validarFormulario(formulario) {
                var valido = true;
                var elementos = formulario.elements;
                for (var i = 0; i

Usando eventos

Observar el evento onblur en la entrada de texto, se verifica al perder el foco (pulsando en cualquier parte fuera del campo) sin esperar a que el usuario haga clic en el botón de enviar.

              function validatePass(campo) {
                var RegExPattern = /(?!^[0-9]*$)(?!^[a-zA-Z]*$)^([a-zA-Z0-9]{8,10})$/;
                var errorMessage = 'Password Incorrecta.';
                if ((campo.value.match(RegExPattern)) && (campo.value!=''))
                   { alert('Password Correcta'); }
                else { alert(errorMessage); 
                  campo.focus(); } 
              }
              
              


Entre 8 y 10 caracteres, por lo menos un digito y un alfanumérico, y no puede contener caracteres espaciales

Que se ve asi:


Entre 8 y 10 caracteres, por lo menos un digito y un alfanumérico, y no puede contener caracteres espaciales

--- REvisar https://developer.mozilla.org/es/docs/Learn/Forms/Form_validations y tambien https://www.arkaitzgarro.com/javascript/capitulo-16.html

Como estructurar un formulario

MDN estructurar formularios

Ejercicios

Hoja de ejercicios