validar validacion vacios formularios formulario enviar ejemplos ejemplo crear con campos antes javascript jquery forms input

javascript - validacion - ¿Cómo obtener el formulario principal de una entrada?



validar formulario javascript html5 (10)

¿Esto funcionaría? (Dejar la acción en blanco también devuelve el formulario a sí mismo, ¿no?)

<form action=""> <select name="memberid" onchange="this.form.submit();"> <option value="1">member 1</option> <option value="2">member 2</option> </select>

"este" sería el elemento seleccionado, .form sería su forma principal. ¿Derecha?

Necesito obtener una referencia al padre FORMULARIO de una ENTRADA cuando solo tengo una referencia a esa ENTRADA. ¿Es esto posible con JavaScript? Use jQuery si lo desea.

function doSomething(element) { //element is input object //how to get reference to form? }

Esto no funciona:

var form = $(element).parents(''form:first''); alert($(form).attr("name"));


Cada entrada tiene una propiedad de form que apunta a la forma a la que pertenece la entrada, por lo que simplemente:

function doSomething(element) { var form = element.form; }


Los elementos DOM nativos que son entradas también tienen un atributo de form que apunta al formulario al que pertenecen:

var form = element.form; alert($(form).attr(''name''));

Según w3schools , la propiedad .form de los campos de entrada es compatible con IE 4.0+, Firefox 1.0+, Opera 9.0+, que es incluso más navegadores que jQuery garantiza, por lo que debe seguir con esto.

Si este fuera un tipo diferente de elemento (no una <input> ), podría encontrar el padre closest con el closest :

var $form = $(element).closest(''form''); alert($form.attr(''name''));

Además, consulte este enlace de MDN en la propiedad del HTMLInputElement de HTMLInputElement :


Necesitaba usar element.attr (''form'') en lugar de element.form

Yo uso Firefox en Fedora 12


Si usa jQuery y tiene un control para cualquier elemento de formulario, necesita obtener (0) el elemento antes de usar .form

var my_form = $(''input[name=first_name]'').get(0).form;


Usando jQuery :

function doSomething(element) { var form = $(element).closest("form").get(). //do something with the form. }


Uso un poco de código jQuery y código javascript sin estilo antiguo.

$($(this)[0].form)

Esta es una referencia completa al formulario que contiene el elemento


Y uno más ...

var _e = $(e.target); // e being the event triggered var element = _e.parent(); // the element the event was triggered on console.log("_E " + element.context); // [object HTMLInputElement] console.log("_E FORM " + element.context.form); // [object HTMLFormElement] console.log("_E FORM " + element.context.form.id); // form id


simplemente como:

alert( $(this.form).attr(''name'') );


function doSomething(element) { var form = element.form; }

y en el html, necesita encontrar ese elemento y agregar el "formulario" de atributo para conectarse a ese formulario, consulte http://www.w3schools.com/tags/att_input_form.asp pero este formulario no lo hace. soporte IE , por ejemplo, debe pasar la identificación del formulario directamente.