2014-01-16 3 views
1

Вот нормальный HTML-файл, который содержит форму и у него есть дети этикетки, часть кодов:Нажмите событие на атрибут DOM возвращения отца

<form name="search" action="/cgi-bin/MAPSEARCH2" method="get" onsubmit="var the_result = checkMapNumbers(); 
return the_result;"> 
    <input type="hidden" name="LOCAL" value="ALE"> 
    <table width="700"> 
    <tbody> 

     <td width="20"> 
     <input type="radio" name="ORDER" value="NAM" checked=""></td> 
     <td width="100" valign="top"><font style="color:#330099;">Owner´s Name:</font></td> 

    </tbody></table> 
</form> 

И все, что я хочу сделать, что добавить функцию щелчка на всех типах «входных» меток: и вернуть два значения:

«метод» и «действие» атрибута его «формы».

Ниже мои JS коды:

$(document).ready(function(){           
    $("input").click(function(){ 
    var a=$(this).parents("form").method; 
    var b=$(this).parents("form").action;  
    $("#test1").text("parents.name:"+ a+ "parents.action"+b); 
    }); 
}); 

Но после того, как я нажимаю любой входной элемент в браузере, выход для метода и значений действий являются «неопределенным». Как вернуть правильную функцию.

ответ

2

Использование .prop(), он извлекает значение свойства

var a=$(this).closest("form").prop('method'); 
var b=$(this).closest("form").prop('action'); 
1

Попробуйте это,

$(document).ready(function(){           
     $("input").click(function(){ 
     var a=$(this).closest("form").attr("method"); 
     var b=$(this).closest("form").attr("action");  
     $("#test1").text("parents.name:"+ a+ "parents.action"+b); 
     }); 
    }); 

FIDDLE

4
var a=$(this).parents("form").method; 

Либо использовать простой native DOM:

var a = this.form.method; 

или proper JQuery:

var a = $(this).parents("form").prop('method'); 

То же самое для action.

Смежные вопросы