javascript - 将监听器附加到按钮以使用 AJAX 发送表单数据与使用标准 HTML 表单有什么区别?

标签 javascript jquery html ajax forms

也就是说,这两种方法之间有什么区别:

  1. AJAX

我有一些随机输入字段,这些字段不一定位于表单容器 (HTML) 中。在我的 JS 文件中,我有一个按钮的监听器(不一定以任何方式附加或与输入字段相关),该按钮使用 jquery 提取值并使用 $.post(url, postParams, callback(...) {.. .});发布数据。

  • HTML
  • 我将所有输入字段放在表单标记的上下文中,并添加一个提交输入,其操作指向相应的路由(这对应于上面 AJAX/jquery 方法中的 url)。

    有什么问题吗?是不是只是选项 1 会提交表单而无需刷新页面,而选项 2 则可以?

    最佳答案

    是的,方法 1 基本上允许您在不刷新整个页面的情况下提交表单。

    最好使用“渐进增强”将两者结合起来。这基本上意味着您从最基本的方法开始,以确保它能够全面发挥作用,然后您可以增加一些趣味 - 那些有能力的人将获得更好的用户体验。

    以此为例:

    <form action="somescript.aspx" method="post" class="ajax">
    <label for="something">Something</label>
    <input type="text" name="something" id="something" />
    <input type="submit" value="Submit form" />
    </form>
    

    这是一个非常基本的标准 HTML 表单,适用于所有设备,每个人都应该能够成功使用它,使用辅助技术等等。

    然后添加这个简单的 JS 脚本,它会“劫持”表单的默认功能,并为那些拥有 JS 的用户添加 AJAX:

    <script>
      $('form.ajax').submit(function() {
          var form = $(this);
          $.post(form.attr('action'), form.serialize(), function(result) {
              // Do something with the response
          });
          return false;
      });
    </script>
    

    关于javascript - 将监听器附加到按钮以使用 AJAX 发送表单数据与使用标准 HTML 表单有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30947163/

    相关文章:

    html - 隐藏输入类型=文件上的浏览按钮

    javascript - 按钮 onclick 事件不会触发

    javascript - 发送电子邮件时外文信件失败

    javascript - jQuery/Bootstrap : dropdown-toggle is not setting the selected menu item as default selected item

    javascript - 如何创建一个也是输入文本框的选择列表?

    html - 将视频图像放在 HTML 上

    Javascript:在循环中按循环分割字符串

    javascript - JS Bookmarklet 在 IE11 中不工作

    Jquery动画底部问题

    javascript - 在 Angular 1.2.29 中从 Controller 中获取 DOM 操作