2013-08-03 87 views
1

我有以下形式:的jQuery提交的Django的形式,不費一槍

<div> 
    <form id="edit-form" method="post" action="">{% csrf_token %} 
     <fieldset></fieldset> 
     <button id="button-submit" type="submit">Submit</button> 
    </form> 
</div> 

我想火提交自己,所以我可以通過AJAX做到這一點。問題是我從來沒有去提交處理程序。以下是代碼:

$.post(url,data,function(result){ 
    $(".page-added").append(result); 
    $("#edit-form").submit(function (event){ 
     event.preventDefault(); 
    alert('submitted'); 
    return false; 
}); 

}) 
return false 
}); 

結果包含編輯表單。

問題是警報永遠不會被觸發,並且提交處理程序永遠都不會到達。

回答

1

這可能是因爲append()行爲同步,以便您在DOM中存在​​之前綁定該處理程序。

您可以使用不同的方法對於這個問題,該靜態元素上使用on()

// bind your submit handler here, assuming .page-added is the static element 
$('.page-added').on('submit', '#edit-form', function (e) { 
    e.preventDefault(); 
    alert('submitted'); 
}); 

// do your ajax here 
$.post(url, data, function (result) { 
    $(".page-added").append(result); 
}); 

希望它能幫助。