【问题标题】:ajax does not return control under form for js after submitting提交后ajax在表单下不返回控制权
【发布时间】:2016-10-25 09:25:53
【问题描述】:

下面是我从类别列表提交表单的代码。列表中的所有按钮都填写一个表单,并且在使用 ajax 提交表单之前可以正常工作。 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 获取后,按钮应再次初始化。
  • 您需要事件委托,请参阅下面的答案

标签: javascript jquery ajax forms


【解决方案1】:

Delegate你所有的点击事件

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

  //code
});

【讨论】:

  • $(function(){ initButtons(); }); function initButtons(){ $("#categories span.addsubcategory").click(function(){ $("#category-action").text("添加类别:"+$(this).parent().children ().eq(0).text()); .....
  • @ALexander 你还有什么问题?
  • 感谢您的帮助。现在好了。
猜你喜欢
  • 1970-01-01
  • 2016-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-21
  • 1970-01-01
  • 2020-10-26
相关资源
最近更新 更多