Bellowはカテゴリのリストからフォームを送信するための私のコードです。リストのすべてのボタンが1つのフォームを満たしていて、それはajaxでフォームを送信する前に正常に機能します。 ajaxを送信した後、誰もボタンを押してもフォームに再度入力できません。 フォームをもう一度手で埋めて、もう一度送ることができますが、これをJS(ボタンをクリック)で行いたい場合は、古いデータだけのフォームを取得します。ajaxは送信後にjsのフォームで制御を返しません
$(function(){
$("#categories span.addsubcategory").click(function(){
$("#category-action").text("Add category: "+$(this).parent().children().eq(0).text());
$("#parentcategoryid").val($(this).parent().attr('data-catid'));
$("#ajaxaction").val('addsubdir');
$("#categoryname").val('');
$("#categoryname").prop("disabled", false);
})
$("#categories span.renamecategory").click(function(){
$("#category-action").text("Rename category");
$("#parentcategoryid").val($(this).parent().attr('data-catid'));
$("#ajaxaction").val('renamedir');
$("#categoryname").val($(this).parent().children().eq(0).text());
$("#categoryname").prop("disabled", false);
})
$("#categories span.deletecategory").click(function(){
$("#category-action").text("Delete category");
$("#parentcategoryid").val($(this).parent().attr('data-catid'));
$("#ajaxaction").val('deletedir');
$("#categoryname").val($(this).parent().children().eq(0).text());
$("#categoryname").prop("disabled", true);
})
$("#newcategory").submit(function sendCategory(){
$.ajax({
type: "POST",
url: "index.php",
data: $("#newcategory").serialize(),
success: function(response){
$("#categories .panel-body").html(response);
} ,
error: function(){
alert("Data sending error");
},
complete: function(data) {
$("#newcategory").find('input[type="submit"]').prop('disabled', false);
$("#adddir").modal('hide');
}
});
return false;
});
});
申し訳ありませんが、私は決断を発見しました。 ajaxを取得した後、ボタンを再度初期化する必要があります。 – ALexander
あなたはイベントの委任が必要です。下記の私の答えをご覧ください。 – madalinivascu