javascript - 序列化表单而不提交

标签 javascript ajax forms

有没有一种方法可以在不调用ajax调用的提交函数的情况下实现序列化?我到处检查过,似乎可以为这个特定问题找到一个不错的答案。这是当我单击表单中的按钮时调用的 Java 脚本函数。

document.forms[FORMNAME].submit();

相反:

var form = $(document.forms[FORMNAME]);

$.ajax({
  type     : "POST",
  url      : form.attr('action'),
  data     : form.serializeArray(),
  success : function(data) {
    console.log("2");
  },
  error : function() {
    console.log("3");    
  },
  complete: function() {
    console.log("4");
  }
});

运行时出现此错误。

Uncaught TypeError: form.attr is not a function

我也尝试过这个。

var form = $(document.forms[FORMNAME]);

        $.ajax({
         type     : "POST",
         url      : $(form).attr('action'),
         data     : $(form).serialize(),
         success  : function(data) {
         console.log("2");
         },
         error    : function() {
         console.log("3");

         },
         complete : function() {
         console.log("4");
         }
        });

当我这样做时,我真的得到了我的表单$(document.forms[FORMNAME])

似乎只有在我使用它时才有效,但这不是我想要的。

document.forms[FORMNAME].submit(function(event){

        // Stop form from submitting normally
        event.preventDefault();

        var $form = $(this);

        //AJAX STUFF
     });

最佳答案

您应该使用以避免 Uncaught TypeError: form.attr is not a function

$(form).attr('action')

并用于序列化表单数据使用

$(form).serialize()

关于javascript - 序列化表单而不提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34298311/

相关文章:

javascript - 分离或划分值并根据它们制作饼图

javascript - 如何在原型(prototype)中读取 json 对象

php - 如何使用 AJAX 获取存储在数据库中的 <select> 标签的更改?

winforms - 如何在Delphi中的任务栏上显示透明且无边框的窗体?

javascript - 使用javascript发送带有表单的单个隐藏字段

ruby-on-rails - 与注释的多态关联 - Ruby on Rails

javascript - jquery中的点击事件比较

javascript - PJAX 请求完成并下载资源后回调

javascript - 如何判断请求是否是来自JS的AJAX

javascript - Firebase:从所有子节点中删除事件(书签系统)