Вам понадобится повторно присоединить определенный вами обработчик события отправки, поскольку вы заменяете форму. Вы можете сделать всю эту функцию вызываемой функцией, чтобы вызывать ее несколько раз.
Насколько я знаю, live
не работает для submit
- вы можете подключить обработчик событий click
с live
, но это не точно то же самое как .submit
. Я бы просто определил функцию так:
function handleForm( el ) {
$(el).submit(function(){
var productDiv = $(el).parent();
var action = $(el).attr('action');
var formData = $(el).serialize();
$.post(action, formData, function(data){
productDiv.replaceWith(data);
var form = data.find('form');
handleForm( form );
});
return false;
});
}
handleForm('.edit_clothing_product')
Если вам лень, присоедините .live('click', function() {} );
к кнопке отправки, но если она отправлена без щелчка, она не будет работать, поэтому у нее есть свои недостатки.
$('.edit_clothing_product #submitButton').live('click', function(){
var form = $(this).closest('form');
var productDiv = form.parent();
var action = $(form).attr('action');
var formData = $(form).serialize();
$.post(action, formData, function(data){
productDiv.replaceWith(data);
});
return false;
});
Вы также можете использовать liveQuery
, но я никогда не использовал это.