为什么我的表单提交仍然刷新页面?

迈克·阿比内里

我是ajax的新手,并且了解一些基本的jQuery。但是,当测试一个简单的测试ajax脚本时,我遇到了困难。

我已经阅读了其他与我们类似的问题,但没有得到任何结果。

我希望实现的目标是:当输入字段“模糊”时,它将提交它所在的表单,将ajax请求发送到一个文件,该文件简单地回显以json格式提交的内容,然后将其返回并将响应记录到控制台。

这是我所做的。当您单击输入字段时,将提交以下表单:

<form id="title_form" method="POST">
    <div class="row">
        <div class="col-12">
            <div class="form-group">
                <label for="project_title">Project Title</label>
                <div class="input-group input-group-lg">
                    <input onblur="return document.getElementById('title_form').submit();" id="project_title" type="text" class="form-control" name="project_title" required>
                </div>
            </div>
        </div>
    </div>
</form>

这是ajax脚本:

$(document).ready(function() {
  var root = $('#url_root').val();
  var php_file = 'assets/ajax/update.php';
  var url = root+php_file;
    $('#title_form').submit(function(e) {
        e.preventDefault();
        $.ajax({
            type: "POST",
            url: url,
            data: $(this).serialize(),
            success: function(response)
            {
              var jsonData = JSON.parse(response);
              console.log(jsonData);
           }
       });
     });
});

这是update.php页面,它以json格式回显发布数据:

<?php
    
    if(isset($_POST['project_title'])){
        echo json_encode($_POST['project_title']);
    }
?>

onblur提交表单部分工作正常!

但是,我的ajax脚本并没有阻止刷新页面(尽管使用e.preventDefault),也没有在控制台中记录响应(我的猜测是因为ajax脚本根本无法工作,因为我错过了一些明显的东西。

罗里·麦克罗森(Rory McCrossan)

原因是因为您submit在本机表单Element上调用该事件,而不是引用该表单的jQuery对象。因此,jQuerysubmit事件处理程序不会触发。

要解决此问题并改善代码,请onclick从HTML中删除过时的属性,并为事件使用不引人注目的事件处理程序blur-尽管请注意,这change似乎更合适,因为它会在模糊时触发,但仅在更改字段值之后,这将为您节省一些不必要的服务器请求。然后,您可以触发submit包含表单引用的jQuery对象,如下所示:

<form id="title_form" method="POST">
  <div class="row">
    <div class="col-12">
      <div class="form-group">
        <label for="project_title">Project Title</label>
        <div class="input-group input-group-lg">
          <input id="project_title" type="text" class="form-control" name="project_title" required>
        </div>
      </div>
    </div>
  </div>
</form>
$(document).ready(function() {
  var $form = $('#title_form');

  var root = $('#url_root').val();
  var php_file = 'assets/ajax/update.php';
  var url = root + php_file;

  $('#project_title').on('change', function() {
    $form.trigger('submit');
  });

  $form.on('submit', function(e) {
    e.preventDefault();

    $.ajax({
      type: "POST",
      url: url,
      data: $(this).serialize(),
      success: function(response) {
        var jsonData = JSON.parse(response);
        console.log(jsonData);
      }
    });
  });
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

提交表单而不刷新页面

来自分类Dev

当我点击提交按钮 django 时,无法验证表单并刷新页面

来自分类Dev

MVC 5阻止表单提交时刷新页面

来自分类Dev

如何停止刷新页面中的表单提交按钮?

来自分类Dev

验证并提交表单,而无需刷新页面

来自分类Dev

提交表单而不刷新页面ajax,php,javascript?

来自分类Dev

表单提交刷新页面上的jQuery

来自分类Dev

PHP:无效表单提交时刷新页面

来自分类Dev

Ajax提交表单而不刷新页面

来自分类Dev

提交表单后,CodeIgniter刷新页面

来自分类Dev

表单是否在提交时刷新页面?

来自分类Dev

无需重新提交表单即可刷新页面

来自分类Dev

刷新页面仍然显示动画?

来自分类Dev

我需要帮助才能在php页面上获取表单,以在提交时强制刷新页面

来自分类Dev

为什么在刷新页面之前我的程序没有执行?

来自分类Dev

为什么我的js仅在刷新页面后才能正常工作?

来自分类Dev

为什么我的 SQL 在刷新页面时插入相同的数据?

来自分类Dev

为什么在列表中删除后我必须手动刷新页面?

来自分类Dev

为什么JavaScript事件刷新页面

来自分类Dev

为什么刷新页面时会重置localStorage条目?

来自分类Dev

为什么要不断刷新页面?

来自分类Dev

APEX:提交而不刷新页面

来自分类Dev

提交表格后刷新页面

来自分类Dev

提交刷新页面中的jQuery

来自分类Dev

提交按钮是刷新页面而不是提交表单吗?(ReactJS和react-toastify)

来自分类Dev

刷新页面时表单重新提交的问题-在Wordpress中预览页面时

来自分类Dev

在提交表单重定向到另一个页面时刷新页面

来自分类Dev

提交表单时如何避免刷新页面而又不致使页面滞后?

来自分类Dev

当我刷新页面时,绝对放置的元素不会隐藏在我的布局中。为什么?

Related 相关文章

  1. 1

    提交表单而不刷新页面

  2. 2

    当我点击提交按钮 django 时,无法验证表单并刷新页面

  3. 3

    MVC 5阻止表单提交时刷新页面

  4. 4

    如何停止刷新页面中的表单提交按钮?

  5. 5

    验证并提交表单,而无需刷新页面

  6. 6

    提交表单而不刷新页面ajax,php,javascript?

  7. 7

    表单提交刷新页面上的jQuery

  8. 8

    PHP:无效表单提交时刷新页面

  9. 9

    Ajax提交表单而不刷新页面

  10. 10

    提交表单后,CodeIgniter刷新页面

  11. 11

    表单是否在提交时刷新页面?

  12. 12

    无需重新提交表单即可刷新页面

  13. 13

    刷新页面仍然显示动画?

  14. 14

    我需要帮助才能在php页面上获取表单,以在提交时强制刷新页面

  15. 15

    为什么在刷新页面之前我的程序没有执行?

  16. 16

    为什么我的js仅在刷新页面后才能正常工作?

  17. 17

    为什么我的 SQL 在刷新页面时插入相同的数据?

  18. 18

    为什么在列表中删除后我必须手动刷新页面?

  19. 19

    为什么JavaScript事件刷新页面

  20. 20

    为什么刷新页面时会重置localStorage条目?

  21. 21

    为什么要不断刷新页面?

  22. 22

    APEX:提交而不刷新页面

  23. 23

    提交表格后刷新页面

  24. 24

    提交刷新页面中的jQuery

  25. 25

    提交按钮是刷新页面而不是提交表单吗?(ReactJS和react-toastify)

  26. 26

    刷新页面时表单重新提交的问题-在Wordpress中预览页面时

  27. 27

    在提交表单重定向到另一个页面时刷新页面

  28. 28

    提交表单时如何避免刷新页面而又不致使页面滞后?

  29. 29

    当我刷新页面时,绝对放置的元素不会隐藏在我的布局中。为什么?

热门标签

归档