【问题标题】:form is not submit when click on submit button of ajax response HTML单击ajax响应HTML的提交按钮时表单未提交
【发布时间】:2012-10-12 11:16:33
【问题描述】:

我在 php 中使用 jquery 进行 ajax 调用,并且得到了相同的结果,但是在结果的(响应)HTML 中,我有一个表单在单击提交按钮后没有提交。我没有收到任何错误。 我也想在不使用 Ajax 的情况下提交这个响应 HTML 表单。 请帮我解决这个问题。

Ajax 响应:

<form method=\"post\" id=\"clientlist\" action=\"addclients.php\">
  //inputs fileds...
</form>

Ajax 调用:

var $j = jQuery.noConflict();
$j(document).ready(function(){
   $j(".linktext").click(function(){ 

   //check which link is tobe click e.g. Prev or Next
   var link = $j(this).html();
   var limit = 1;
   if(link == 'Prev'){
     limit = document.getElementById('text_prev').value;
   }else if(link =='Next'){ 
     limit = document.getElementById('text_next').value;
   }

   $j.ajax({
     type: "POST",
     data: $j("#clientlist").serialize(),
     url: "agencyclients_ajax.php?start="+limit,
     success: function(response) {
       $j('#mainbody').html(response);
     }
  });
 });

【问题讨论】:

  • 也许你应该使用 preventDefault() 方法来阻止表单提交。如果您不想使用 ajax,请使用常规 PHP。还是我错过了什么?
  • 你能再分享一些代码吗?更具体地说,在新表单登陆之前实际获取新表单和页面上呈现的 HTML 的 AJAX 调用会有所帮助

标签: php jquery ajax


【解决方案1】:

请对表单使用 SUBMIT 事件。 当您单击提交时,只需执行 ajax 调用,然后返回 false 以确保该表单未以正常方式提交。

现在您正在使用链接 CLICK 事件//not encouraged.

对于jquery没有冲突,使用这段代码:

(function($){
   $(function(){
      //$ can be used in this area without any conflict, provided by jQuery Docs for creating a plugin
   });
})(jQuery);

【讨论】:

    【解决方案2】:

    将ajax响应改为:

    <form method="post" id="clientlist" action="addclients.php">
      //inputs fileds...
    </form>
    

    删除斜线。

    【讨论】:

      【解决方案3】:

      这是因为事件处理程序在重新加载后没有添加到“.linktext”。

      您可以使用 JQuery On 函数,以便在 DOM 更改时重新应用事件处理程序。

      http://api.jquery.com/on/

      $j(".linktext").click(function(){
      

      变成

      $j(".linktext").on("click", function(event){
      

      【讨论】:

      • 操作员问I want to submit this response HTML form without using Ajax 所以我不认为这是问题
      【解决方案4】:

      这是一个例子。将 $('#submit') 替换为您的提交按钮 ID。

      $('#submit').click(function(){
           $.ajax({
               type:'POST',
               url: '/search.php',
               data: $j("#clientlist").serialize(),
               success: function(data){
                  alert('sent');
               }
           });
      return false;
      });
      

      【讨论】:

        猜你喜欢
        • 2020-12-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多