弘帝企业智能建站系统交流平台

 找回密码
 立即注册
查看: 2745|回复: 3

ajax利用FormData进行form post传值

[复制链接]
发表于 2020-4-18 22:04:32 | 显示全部楼层 |阅读模式
    $("input[type=submit]").on("click", function () {
        var formData = new FormData($("form")[0]);
        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



回复

使用道具 举报

 楼主| 发表于 2020-4-18 23:32:05 | 显示全部楼层

ASP中如何使用Ajax.FormData

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

$("input[type=submit]").on("click", function () {
    var formData = new FormData($("#bind")[0]);
    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[0]] = entry[1];
    }
    return objData;
};
以上在弘帝建站系统客户关系管理绑定会员功能实现,路径:login/js/crm.bind.js



回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-16 11:45:05 | 显示全部楼层
超级简洁:
var formData = new FormData($("form")[0]);
也可以
var formData = new FormData($("#formid"));
追加参数,如
formData.append("ajax",1)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-31 10:40:56 | 显示全部楼层

FormData开发中的问题解决

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

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


回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|弘帝企业智能建站系统 ( 皖ICP备07503252号 )

GMT+8, 2024-11-24 01:38 , Processed in 0.048390 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表