我有一個主頁面(Home.aspx),並從菜單中選擇一個鏈接,向服務器發送一個異步請求並在jquery選項卡中加載響應(另一個aspx頁面)。在javascript中查找表單Id
現在我有不同的頁面內的超鏈接,並點擊我調用外部js文件中的方法。我如何獲得點擊超鏈接的表單ID。
要簡單點擊一個超鏈接調用一個方法,我會得到超鏈接所屬窗體的ID。
我有一個主頁面(Home.aspx),並從菜單中選擇一個鏈接,向服務器發送一個異步請求並在jquery選項卡中加載響應(另一個aspx頁面)。在javascript中查找表單Id
現在我有不同的頁面內的超鏈接,並點擊我調用外部js文件中的方法。我如何獲得點擊超鏈接的表單ID。
要簡單點擊一個超鏈接調用一個方法,我會得到超鏈接所屬窗體的ID。
如果不使用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
}
});
我不知道你的代碼的樣子,但你問什麼會像
$("#container a").click(function() {
if($(this).parent().attr('id') == "the_form_you_need") {
do_stuff_with_it();
}
});
我認爲你將不得不步行DOM樹開始在鏈路節點中去直到找到表單節點爲止。概念上,代碼會是這個樣子:
node = link;
while (node.type != form) {
node = node.parent;
}
form.id = node.id;
請發表您的代碼。或者至少_some_代碼... – 2010-11-25 07:47:03
向我們展示代碼真的有幫助。 – 2010-11-25 07:51:55