2016-10-25 10 views
-2

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; 
     }); 

}); 
+0

申し訳ありませんが、私は決断を発見しました。 ajaxを取得した後、ボタンを再度初期化する必要があります。 – ALexander

+0

あなたはイベントの委任が必要です。下記の私の答えをご覧ください。 – madalinivascu

答えて

0

Delegateすべてのクリックイベント

$("body").on("click","#categories span.deletecategory",function(){ 

    //code 
}); 
+0

$(function(){ initButtons(); }); function initButtons(){ $( "#category span.addsubcategory")をクリックしてください(function {){ $( "#category-action")}テキスト( "カテゴリを追加:" + $(this)).parent ().children().eq(0).text()); ..... – ALexander

+0

@ALexanderまだ何の問題がありますか? – madalinivascu

+0

ありがとうございました。 – ALexander

関連する問題