2013-08-03 4 views
1

У меня есть следующий вид:JQuery представить в форме Джанго не стреляя

<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() ведет себя синхронно, так что вы связываете этот обработчик до #edit-form в 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); 
}); 

Надеется, что это помогает.

Смежные вопросы