几个有用的jquery表单函数

//将JSON字符串的值回填回表单
function loadData(obj) {
        /* var obj = eval("("+jsonStr+")"); */
        var key, value, tagName, type, arr;
        for (x in obj) {
            key = x;
            value = obj[x];
            $("[name='" + key + "']").each(function () {
                tagName = $(this)[0].tagName;
                type = $(this).attr('type');
                if (tagName == 'INPUT') {
                    if (type == 'radio') {
                        $(this).attr('checked', $(this).val() == value);
                    } else if (type == 'checkbox') {
                        arr = value.split(',');
                        for (var i = 0; i < arr.length; i++) {
                            if ($(this).val() == arr[i]) {
                                $(this).attr('checked', true);
                                break;
                            }
                        }
                    } else {
                        $(this).val(value);
                    }
                } else if (tagName == 'SELECT' || tagName == 'TEXTAREA') {
                    $(this).val(value);
                }

            });
        }
    }
//获取表单中所有的数据
//注意:此方法返回的是 JSON 对象而非 JSON 字符串。
    function getFormJson(id) {
        var test = $("#" + id).serializeArray();                                //serializeArray() 方法通过序列化表单值来创建对象数组(名称和值)。
        var dataStr = "{";
        for (var i = 0; i < test.length; i++) {
            var nameT = test[i].name;
            var valueT = test[i].value;
            dataStr = dataStr + "\"" + nameT + "\":\"" + valueT.trim() + "\",";  //trim()方法用来去除空格
        }
        /*获取复选框的值,一般复选框只有一个时,我们在选中和未选中时都要传一个值。选中时,上面的方法会获取到,但是未选中时,这里可以定义你要传的值,我这里传的值为字符串 '0' ,当然你也可以定义其他的值*/
        $("#" + id + " input[type='checkbox']").each(function () {
            if (!$(this).is(':checked')) {                                        //这里判断复选框如果未被选中的话执行下一步
                dataStr = dataStr + "\"" + $(this).attr('name') + "\":\"0\",";
            }
        });
        dataStr = dataStr.substring(0, dataStr.length - 1);                   //去掉最后一个属性的逗号
        dataStr = dataStr + "}";
        //var dataJson = JSON.parse(dataStr);                                   //parse()方法把dataStr对象转成json数据
        //return dataJson;
        return dataStr;
    }
//获取地址栏中参数的值
function getUrlParam(name) {
        var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
        var r = window.location.search.substr(1).match(reg);  //匹配目标参数
        if (r != null) return unescape(r[2]); return null; //返回参数值
    }

猜你喜欢

转载自blog.csdn.net/ly8261861/article/details/83149904