2012-12-31 59 views
1

我有一個DOM元素#article和我加載登錄表單此使用 下面的代碼:如何添加「on」到甚至添加到動態添加的另一個元素中的元素?

$('#loginLink') 
.click(function() { 
    var $link = $(this); 
    var href = $link.attr('data-href'); 
    $('#article').load(href); 
} 
return false; 
}); 

的登錄表單的外觀:

<article id="article"> 
<section class="form" id="loginForm"> 
<form action="/User/Account/Login" method="post" novalidate="novalidate"> 
..... 

我怎麼能把一些動作到表單提交?目前,我有這個 代碼:

$("loginForm").on("submit", function() { 
    var $form = $(this); 

我所知道的登錄表單添加以後這將無法工作。我需要的是一個 當單擊loginForm提交時附加到#article的方法。

回答

3

load有,一旦內容被加載它觸發一個回調,所以:

$('#article').load(href, function() { 
    // Hook up the new elements here 
}); 

我需要的是在點擊登錄表單提交時要附加到#article的方式。

所以在load回調你勾形式submit並在事件處理程序,你會做什麼是你想做的事情#article,如:

$('#article').load(href, function() { 
    $("#loginForm").on("submit", function() { 
     // Code here to do further things with #article 
    }); 
}); 

(當然,除非表單有一個打開一個新窗口的target,或者您取消了標準表單提交併以另一種方式發送數據,否則頁面將被表單提交完全拆除,並由服務器生成的頁面取代,因此對#article所做的更改不會持續很長時間,但我猜你已經預防荷蘭國際集團說,或者你正在做是爲了改變,直到頁面獲取由表單提交扯下只)


邊注:這可能只是問題的一個錯字,但你有$("loginForm")而不是$("#loginForm")