每次点击都会通过ajax发送表单

时间:2017-06-03 05:11:51

标签: javascript jquery html ajax

我想通过点击每个提交按钮发送我的表单。

我的问题:我如何发送每个表单并分别指出每个结果。我已经测试了以下代码,但它没有发送任何内容,并且没有.divs div的结果:

$("form").on('submit',function(e) {
  var url = 'http://seller.ir/test'
  $.ajax({
    type: "POST",
    url: url,
    data: $(this).serialize(),
    success: function(data) {
      $(this).find('.divs').empty
      $(this).find('.divs').html(data)

    }
  });
  e.preventDefault();
});
form{
	width:100px;
	border:1px solid blue;
	height:50px;
	}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<div class="divs">
<form>
<button id="done"type="submit">done</button>
</form>
</div>
<div class="divs">
<form>
<button id="done" type="submit">done</button>
</form>
</div>
<div class="divs">
<form>
<button id="done" type="submit">done</button>
</form>
</div>

1 个答案:

答案 0 :(得分:0)

您的代码唯一的问题是您的表单没有.divs作为后代。请阅读.find()的文档。

  

获取当前匹配元素集中每个元素的后代,由选择器,jQuery对象或元素过滤。

将您的HTML更改为

<form>
  <button id="done"type="submit">done</button>
  <div class="divs"></div>
</form>
<form>
  <button id="done"type="submit">done</button>
  <div class="divs"></div>
</form>
<form>
  <button id="done"type="submit">done</button>
  <div class="divs"></div>
</form>

现在,如果按完成按钮,相应的表单将触发其submit事件,该事件将由jQuery处理。此外,正如其他答案所指出的,不同元素的ID必须是HTML页面的唯一ID。

如果您只是替换内部div的内容,则此行就足够了。

$(this).find('.divs').html(data);

您不需要先清空div。