admin 发表于 2020-4-18 22:04:32

ajax利用FormData进行form post传值

    $("input").on("click", function () {
      var formData = new FormData($("form"));
      formData.append("ajax", "1");
      formData.append("func", "bind");
      formData.append("act", "save");
      $.ajax({
            data: formData,
            type: 'post',
            async: false,
            cache: false,
            contentType: false,
            processData: false,
            dataType: 'json',
            success: function (data) {
                console.log(data);
                if (data.stat === "ok") {
                  $(".pwd").parent().append(common.submit + common.success + "!");
                } else {
                  err(data.msg);
                }
            }
      });
      return false;
    });
以上在C#中通过,弘帝云代码摘录自:cloud.agent.account.contact/contact.js

【jQuery】ajax利用serializer进行form传值
http://wh.ac.cn/forum.php?mod=viewthread&tid=2504&fromuid=1



admin 发表于 2020-4-18 23:32:05

ASP中如何使用Ajax.FormData

网上没有找到相关的答案,这里演示:

$("input").on("click", function () {
    var formData = new FormData($("#bind"));
    formData.append("ajax", 1);
    formData.append("func", "bind");
    formData.append("act", "save");
    $.ajax({
      type: 'post',
      data: convert_FormData_to_json(formData),
      dataType: "json",
      success: function (data) {
            console.log(data);
            if (data.stat === "ok") {
                $(".pwd").parent().append(common.submit + common.success + "!");
            } else {
                err(data.msg);
            }
      }
    });
    return false;
});

var convert_FormData_to_json = function (formData) {
    var objData = {};

    for (var entry of formData.entries()) {
      objData] = entry;
    }
    return objData;
};
以上在弘帝建站系统客户关系管理绑定会员功能实现,路径:login/js/crm.bind.js



admin 发表于 2022-8-16 11:45:05

超级简洁:
var formData = new FormData($("form"));
也可以
var formData = new FormData($("#formid"));
追加参数,如
formData.append("ajax",1)

admin 发表于 2023-7-31 10:40:56

FormData开发中的问题解决

1、提交当前Form办法:$(this).closest("form");避免提交错误的FORM表单而取不到值。
2、$.send总是出错,利用hondy.form自带的前端函数,示例:hondy.cloud.console.js.member.js
var FormDataToJson = function (c) {
      var h = {};
      c.forEach((a, g) => h = a);
      return JSON.stringify(h)
    },
    Submit_FormDataToJSON = function (c) {
      var h = {},
            a;
      for (a of c.entries()) h] = a;
      return h
    }

分别对应不同的场景,ajax可以使用FormDataToJson,send可以尝试Submit_FormDataToJSON来解决。
3、删除多余的key
// 删除 __VIEWSTATE 字段示例
formData.delete('__VIEWSTATE');


页: [1]
查看完整版本: ajax利用FormData进行form post传值