2010-11-25 40 views
1

我有一個主頁面(Home.aspx),並從菜單中選擇一個鏈接,向服務器發送一個異步請求並在jquery選項卡中加載響應(另一個aspx頁面)。在javascript中查找表單Id

現在我有不同的頁面內的超鏈接,並點擊我調用外部js文件中的方法。我如何獲得點擊超鏈接的表單ID。

要簡單點擊一個超鏈接調用一個方法,我會得到超鏈接所屬窗體的ID。

+1

請發表您的代碼。或者至少_some_代碼... – 2010-11-25 07:47:03

+0

向我們展示代碼真的有幫助。 – 2010-11-25 07:51:55

回答

5

如果不使用JavaScript工具/框架並不在意學習好的做法,只是希望把工作做好。

<!-- inside a form somewhere --> 
<a href="url" onclick="javascript:doStuff(this);">link text</a> 

<!-- somewhere else in your page, where you put javascript --> 
<script> 
    function doStuff(node) { 
     var ancestor = node.parentNode; 
     var formID; 
     while(ancestor && ancestor !== document) { 
      if (/^form$/i.test(ancestor.nodeName)) { 
       formID = ancestor.id; 
       break; 
      } 
      ancestor = node.parentNode; 
     } 
     if (formID) { 
      // do stuff with formID 
     } 
    } 
</script> 

如果你使用jQuery:

$("form a").click(function(e){ 
    var formID = $(this).closest("form").attr("id"); 
    if(formID) { 
     // do stuff with formID 
    } 
}); 
0

我不知道你的代碼的樣子,但你問什麼會像

$("#container a").click(function() { 
    if($(this).parent().attr('id') == "the_form_you_need") { 
     do_stuff_with_it(); 
    } 
}); 
0

我認爲你將不得不步行DOM樹開始在鏈路節點中去直到找到表單節點爲止。概念上,代碼會是這個樣子:

node = link; 
while (node.type != form) { 
    node = node.parent; 
} 
form.id = node.id;