js 获取和回填form表格数据

复制代码
        //将form里面的内容序列化成json数据
        $.fn.serializeJson = function (otherString) {
            var serializeObj = {}, array = this.serializeArray();
            $(array).each(function () {
                if (serializeObj.hasOwnProperty(this.name)) {
                    serializeObj[this.name] += ';' + this.value;
                } else {
                    serializeObj[this.name] = this.value;
                }
            });
            if (otherString != undefined) {
                var otherArray = otherString.split(';');
                $(otherArray).each(function () {
                    var otherSplitArray = this.split(':');
                    serializeObj[otherSplitArray[0]] = otherSplitArray[1];
                });
            }
            return serializeObj;
        };
        //将josn对象赋值给form--》即数据回显
        $.fn.setForm = function (jsonValue) {
            var obj = this;
            $.each(jsonValue, function (name, ival) {
                var $oinput = obj.find("input[name=" + name + "]");
                if ($oinput.attr("type") == "checkbox") {
                    if (ival !== null) {
                        var checkboxObj = $("[name=" + name + "]");
                        var checkArray = ival.split(";");
                        for (var i = 0; i < checkboxObj.length; i++) {
                            for (var j = 0; j < checkArray.length; j++) {
                                if (checkboxObj[i].value == checkArray[j]) {
                                    checkboxObj[i].click();
                                }
                            }
                        }
                    }
                } else if ($oinput.attr("type") == "radio") {
                    $oinput.each(function () {
                        var radioObj = $("[name=" + name + "]");
                        for (var i = 0; i < radioObj.length; i++) {
                            if (radioObj[i].value == ival) {
                                radioObj[i].click();
                            }
                        }
                    });
                } else if ($oinput.attr("type") == "textarea") {
                    obj.find("[name=" + name + "]").html(ival);
                } else {
                    obj.find("[name=" + name + "]").val(ival);
                }
            })
        }
复制代码
// 回填
var thisForm = $("#form");
thisForm.setForm(data);
// 获取
var thisForm = $("#form");
var thisData = thisForm.serializeJson();

 

posted @   言和1225  阅读(664)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示