2014-02-13 52 views
3

我正在嘗試使用鏈接提交表單,該kicker是我不知道表單名稱。我似乎無法導航到我的表單對象。提交jquery anchor的無名錶單

$('a#deleteRecord').click(function(){ 
var $target = $(this).parent().next('form'); 
$target.submit(); 
}); 

從是。

<form method="post" action=" <?php echo $_SERVER['PHP_SELF'] ?>" > 
<input type="hidden" name="action" value="delete"/> 
<input type="hidden" name="record" value="1"/> 
<a id="deleteRecord" class="btn btn-danger" href="#" ><i class="fa fa-trash-o"></i></a> 

因爲我是從數據庫創建表單,所以命名錶單不太實際。有人可以幫助我使用此代碼,或者提出更好的解決方案。謝謝

回答

4

你不需要next(),形式是你的錨的直接父母,所以parent()就足夠了。 html中的form標記未關閉,您需要添加</form>以關閉表單標記。

Live Demo

var $target = $(this).parent(); 

獲取每個元素的父在當前匹配的元素, 任選被一個選擇器,jQuery Doc過濾。

如果您想要在DOM層次結構中找到父級多個級別,那麼使用closest()非常方便。

對於組中的每一個元素,獲取通過測試元件本身和DOM樹向上遍歷通過其 祖先,jQuery doc的 選擇相匹配的第一個元素。

+0

沒有工作。當我做$ target [0] .nodeName它表明我的目標是一個div $ target.submit把我帶到.php#但是表單沒有被執行。 – Rex

+0

我看到它在現場演示中工作,出於某種原因,即使我複製了代碼,我得到div的返回。 – Rex

+0

你可能有不同的html,你可以在jsfiddle上做一個演示來重新產生問題嗎? – Adil

0

使用.closest()

$('a#deleteRecord').click(function() { 
    var $target = $(this).closest('form'); 
    $target.submit(); 
}); 
+0

這是有道理的,但不起作用。我甚至無法提醒($目標)當我使用最接近() – Rex

+0

@ user3304548是否有多種形式,如多個刪除鏈接 –