jquery - first - ¿Cómo encontrar la forma padre del elemento?
jquery parent (5)
Estoy tratando de encontrar el formulario padre del elemento usando el código a continuación:
<form id="f1" action="action1.html">
form1 <button id="btn1" onclick="testaction(this); return false;" >test form 1</button>
</form>
<script type="text/javascript" >
function testaction(element) {
var e = $(element.id);
var form = e.parent(''form'');
alert(form.id); // undefined!!
alert(form.action); // undefined!!
alert(document.forms[0].action); //http://localhost/action1.html
}
</script>
Debe ser algo realmente simple .... Gracias de antemano
El elemento de botón tiene propiedades de formulario http://www.w3schools.com/jsref/dom_obj_pushbutton.asp
buttonElement.form
El problema que tiene es que el form
es un objeto jQuery, no un objeto DOM. Si desea que sea el objeto de formulario, haría e.parent(''form'').get(0)
.
Además, está tratando el elemento de forma incorrecta: jQuery toma los selectores de ID en el formulario #id
pero lo ha pasado.
Aquí hay una versión de trabajo:
function testaction(element) {
var e = $(element);//element not element.id
var form = e.parent(''form'').get(0);//.get(0) added
alert(form.id); // undefined!!
alert(form.action); // undefined!!
alert(document.forms[0].action); //http://localhost/action1.html
}
Vea esto en acción: http://jsfiddle.net/BTmwq/
EDIT : ortografía, claridad
Tire el controlador de eventos en línea a bordo y permanezca discreto aquí.
$(document).ready(function(){
$(''#btn1'').bind(''click'', function(){
var form = $(this).closest(''form'')[0];
alert(form.id); // defined
alert(form.action); // defined
});
});
Ref .: http://api.jquery.com/closest/ , .bind()
http://api.jquery.com/closest/ lo hará. Utilizado como este
$(''#elem'').closest(''form'');
$(".whatever").parents("form");