天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

javascript表單域與json數(shù)據(jù)間的交互第1/3頁

包括對象中有集合屬性、對象中引用其他對象屬性:
復(fù)制代碼 代碼如下:
/**
**json對象數(shù)據(jù)設(shè)置到表單域中
*/
function jsonObjectToForm(form, jsonObject){
    for(i = 0, max = form.elements.length; i < max; i++) {
        e = form.elements[i];
        eName = e.name;
        if(eName.indexOf('.') > 0){
            dotIndex = eName.indexOf('.');
            parentName = eName.substring(0, dotIndex);
            childName = eName.substring(dotIndex+1);
            //迭代判斷eName,組裝成json數(shù)據(jù)結(jié)構(gòu)
            eValue = iterValueFromJsonObject(jsonObject, parentName, childName);
        }else{
            eValue = jsonObject[eName];
        }
        if(eValue && eValue != "undefined" && eValue != "null"){
            switch(e.type){
                case 'checkbox':
                case 'radio':
                    if(e.value == eValue){
                        e.checked = true;
                    }
                    break;
                case 'hidden':
                case 'password':
                case 'textarea':
                case 'text':
                    e.value = eValue;
                    break;
                case 'select-one':
                case 'select-multiple':
                    for(j = 0; j < e.options.length; j++){
                        op = e.options[j];
                        //alert("eName : " + eName + "; op value : " + op.value + "; eValue : " + eValue);
                        if(op.value == eValue){
                            op.selected = true;
                        }
                    }
                    break;
                case 'button':
                case 'file':
                case 'image':
                case 'reset':
                case 'submit':
                default:
            }
        }
    }
}

/**
* json數(shù)組讀寫有兩種方式
* 1: a.bs[0].id
* 2: a["bs"][0]["id"]
* 把表單轉(zhuǎn)換成json數(shù)據(jù)格式
*/
function formToJsonObject(form){
    var jsonObject = {};
    for(i = 0, max = form.elements.length; i < max; i++) {
        e = form.elements[i];
        em = new Array();
        if(e.type == 'select-multiple'){
            for(j = 0; j < e.options.length; j++){
                op = e.options[j];
                if(op.selected){
                    em[em.length] = op.value;
                }
            }
        }
        switch(e.type){
            case 'checkbox':
            case 'radio':
                if (!e.checked) { break; }
            case 'hidden':
            case 'password':
            case 'select-one':
            case 'select-multiple':
            case 'textarea':
            case 'text':
                eName = e.name;
                if(e.type == 'select-multiple'){
                    eValue = em;
                }else{
                    eValue = e.value.replace(new RegExp('(["http:////])', 'g'), '//$1');
                }
                //判斷是否是對象類型數(shù)據(jù)
                if(eName.indexOf('.') > 0){
                    dotIndex = eName.indexOf('.');
                    parentName = eName.substring(0, dotIndex);
                    childName = eName.substring(dotIndex+1);
                    //迭代判斷eName,組裝成json數(shù)據(jù)結(jié)構(gòu)
                    iterJsonObject(jsonObject, parentName, childName, eValue);
                }else{
                    jsonObject[eName] = eValue;
                }
                break;
            case 'button':
            case 'file':
            case 'image':
            case 'reset':
            case 'submit':
            default:
        }
    }
    return jsonObject;
}

/**
* 把表單元素迭代轉(zhuǎn)換成json數(shù)據(jù)
*/
function iterJsonObject(jsonObject, parentName, childName, eValue){
    //pArrayIndex用于判斷元素是否是數(shù)組標(biāo)示
    pArrayIndex = parentName.indexOf('[');
    //判斷是否集合數(shù)據(jù),不是則只是對象屬性
    if(pArrayIndex < 0){
        var child = jsonObject[parentName];
        if(!child){
            jsonObject[parentName] = {};
        }
        dotIndex = childName.indexOf('.');
        if(dotIndex > 0){
            iterJsonObject(jsonObject[parentName], childName.substring(0, dotIndex), childName.substring(dotIndex+1), eValue);
        }else{
            jsonObject[parentName][childName] = eValue;
        }
    }else{
        pArray = jsonObject[parentName.substring(0, pArrayIndex)];
        //若不存在js數(shù)組,則初始化一個(gè)數(shù)組類型
        if(!pArray){
            jsonObject[parentName.substring(0, pArrayIndex)] = new Array();
        }
        //取得集合下標(biāo),并判斷對應(yīng)下標(biāo)是否存在js對象
        arrayIndex = parentName.substring(pArrayIndex+1, parentName.length-1);
        var c = jsonObject[parentName.substring(0, pArrayIndex)][arrayIndex];
        if(!c){
            jsonObject[parentName.substring(0, pArrayIndex)][arrayIndex] = {};
        }
        dotIndex = childName.indexOf('.');
        if(dotIndex > 0){
            iterJsonObject(jsonObject[parentName.substring(0, pArrayIndex)][arrayIndex], childName.substring(0, dotIndex), childName.substring(dotIndex+1), eValue);
        }else{
            jsonObject[parentName.substring(0, pArrayIndex)][arrayIndex][childName] = eValue;
        }
    }
}

/**
* 迭代json數(shù)據(jù)對象設(shè)置到表單域中
*/
function iterValueFromJsonObject(jsonObject, parentName, childName){
    //pArrayIndex用于判斷元素是否是數(shù)組標(biāo)示
    pArrayIndex = parentName.indexOf('[');
    //判斷是否集合數(shù)據(jù),不是則只是對象屬性
    if(pArrayIndex < 0){
        dotIndex = childName.indexOf('.');
        if(dotIndex > 0){
            return iterValueFromJsonObject(jsonObject[parentName], childName.substring(0, dotIndex), childName.substring(dotIndex+1));
        }else{
            return jsonObject[parentName][childName]
        }
    }else{
        pArray = jsonObject[parentName.substring(0, pArrayIndex)];
        //取得集合下標(biāo),并判斷對應(yīng)下標(biāo)是否存在js對象
        arrayIndex = parentName.substring(pArrayIndex+1, parentName.length-1);
        var c = jsonObject[parentName.substring(0, pArrayIndex)][arrayIndex];
        dotIndex = childName.indexOf('.');
        if(dotIndex > 0){
            return iterValueFromJsonObject(jsonObject[parentName.substring(0, pArrayIndex)][arrayIndex], childName.substring(0, dotIndex), childName.substring(dotIndex+1));
        }else{
            return jsonObject[parentName.substring(0, pArrayIndex)][arrayIndex][childName]
        }
    }
}

JavaScript技術(shù)javascript表單域與json數(shù)據(jù)間的交互第1/3頁,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 久久精品视频在线看15 | 欧美一区二区激情视频 | 亚洲精品永久免费 | 无码人妻丰满熟妇区五十路久久 | 午夜一级毛片看看 | 久久久久夜 | 超碰在线视频人人AV | 国产亚洲精品精品精品 | 日韩AV片无码一区二区三区不卡 | 外国xxxx | 老司机午夜影院味味 | 蜜柚免费视频高清观看在线 | 久久6699精品国产人妻 | 蜜芽最新域名解析网站 | 精品无码国产自产在线观看 | 久久99综合国产精品亚洲首页 | 乳色吐息未增删樱花ED在线观看 | 99re久久免费热在线视频手机 | 免费观看99热只有精品 | 入禽太深免费高清在线观看5 | 亚洲中文日韩日本在线视频 | 国产精品午夜小视频观看 | 忘忧草研究所 麻豆 | 午理论理影片被窝 | 久 久 亚洲 少 妇 无 码 | 亚洲伊人网站 | 里番※琉璃全彩acg奈亚子 | 中文字幕在线视频在线看 | 无人区乱码1区2区3区网站 | 美女扒开腿让男生桶免费看动态图 | 美国色吧影院 | 黄色天堂网 | 高H短篇辣肉纯肉 | 最近免费中文字幕完整版HD | 印度性hd18 | 中文在线观看 | 暖暖视频 免费 高清 日本8 | 欧美人与动牲交A精品 | 狠狠色综合7777久夜色撩人 | 国产欧美另类久久久精品免费 | 精品亚洲欧美中文字幕在线看 |