zoukankan      html  css  js  c++  java
  • JS表自动取值赋值

    /*
             *
             * V1.0.0 表单自动取值、赋值插件
             * 表单类型:text radio select-one checkbox textarea
             * 注意项:
             * 1.表单必须设置name属性
             * 调用
             * 取值:formCore.getFormValues()
             * 赋值:formCore.setFormValues(json)
            */
            var formCore = (function() {
                var getCbxValues = function(name) {
                    var values = '';
                    var cks = document.getElementsByName(name);
    
                    for (var i = 0; i < cks.length; i++) {
                        if (cks[i].checked) {
                            values += cks[i].value + ',';
                        }
                    }
    
                    if (values != '') {
                        values = values.substring(0, values.length - 1);
                    }
    
                    return values;
                };
    
                var checkFieldId = function(id) {
                    var obj = document.getElementById(id);
    
                    if (obj == null) {
                        alert("该区域ID对象不存在,请检查!");
                        return false;
                    }
    
                    return true;
                }
    
                /*
                * 表单值"和需要转义 如\ "
                */
                var checkIptValue = function(v) {
                    return v.replace(/\/g, '\\').replace(/"/g, '\"');
                }
    
                var isInArray = function(arr, value) {
                    for (var i = 0; i < arr.length; i++) {
                        if (arr[i] == value) {
                            return true;
                        }
                    }
    
                    return false;
                }
    
                var setChecked = function(name, value) {
                    var cks = document.getElementsByName(name);
                    var arr = value.split(',');
    
                    for (var i = 0; i < cks.length; i++) {
                        if (isInArray(arr, cks[i].value)) {
                            cks[i].checked = true;
                        }
                    }
                }
    
    
                var getFormValues = function(fieldId) {
                    var ipts = null;
    
                    if (fieldId != undefined) {
                        if (checkFieldId(fieldId)) {
                            ipts = $("#" + fieldObj).find(":input");
                        } else {
                            return false;
                        }
                    } else {
                        ipts = $(document.body).find(":input");
                    }
    
                    var json = '{';
    
                    if (ipts.length > 0) {
                        var obj = null;
                        var oldCbxName = '',
                            objName,
                            objType;
    
                        for (var i = 0; i < ipts.length; i++) {
                            obj = ipts[i];
                            objName = obj.name;
                            objType = obj.type;
    
                            if (objType == "text" || objType == "textarea") {
                                json += '"' + objName + '":"' + checkIptValue($(obj).val()) + '",';
                            } else if (objType == "radio") {
                                if (obj.checked) {
                                    json += '"' + objName + '":"' + $(obj).val() + '",';
                                }
                            } else if (objType == "select-one") {
                                json += '"' + objName + '":"' + $(obj).val() + '",';
                            } else if (objType == "checkbox") {
                                //相同类型checkbox只取一次
                                if (oldCbxName != objName) {
                                    oldCbxName = objName;
                                    json += '"' + objName + '":"' + getCbxValues(oldCbxName) + '",';
                                }
                            }
                        }
    
                        json = json.substring(0, json.length - 1);
                    }
    
                    json += '}';
                    return json;
                };
    
    
                var setFormValues = function(json) {
                    if (json != undefined && json != null) {
                        var obj = null,
                            sel = null,
                            objType = null;
    
                        for (var a in json) {
                            sel = ":input[name='" + a + "']";
                            obj = $(sel);
                            objType = obj[0].type;
    
                            if (objType == "text" || objType == "select-one" || objType == "textarea") {
                                obj.val(json[a]);
                            } else if (objType == "radio" || objType == "checkbox") {
                                setChecked(a, json[a]);
                            }
                        }
                    }
                };
    
                return { getFormValues: getFormValues, setFormValues: setFormValues };
            })();
    View Code
  • 相关阅读:
    认识Python
    MongoDB
    K8S搭建过程随笔_证书CFSSL
    K8S搭建过程随笔_系统初始化
    zabbix4.2Proxy安装文档
    Zabbix4.2Server端部署
    单节点FastDFS与Nginx部署
    Windows Server 2016分层式存储,使用PowerShell修改底层介质类型
    kill命令和killall命令
    Nuget使用时遇到的问题,Solved
  • 原文地址:https://www.cnblogs.com/xqhppt/p/3179825.html
Copyright © 2011-2022 走看看