loadDataFormメソッドの役割

2456 ワード


         :Visual Studio 

  :   

    :2019 5 26 


これはjqueryがjsonオブジェクトに基づいてformフォームを埋め込む方法で、私たちはデータを修正するときにまずデータの埋め戻しを行います.
postでデータをコミットしてloadDatatoFormを呼び出すという方法でformフォームのデータ埋め戻しを行います.
$.post("/SystemManagements/CollegeInfor/SelectAcademeById", { academeId: UacademeId },
            function (data) {

                loadDatatoForm("formUpdateAcademe", data);//  json    form  

            },"json")

loadDatatoFormという方法には、データテーブルのIDを入力するパラメータと、コントローラの書き込み方法でクエリーしたデータの2つがあります.
function loadDatatoForm(fromId, jsonDate) {
var obj = jsonDate;

var key, value, tagName, type, arr;

for (x in obj) {//  json  

    key = x;

    value = obj[x];

    //$("[name='"+key+"'],[name='"+key+"[]']").each(function(){

    //  form  id   json    key       

    $("#" + fromId + " [name='" + key + "'],#" + fromId + " [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') {

                try {

                    //  

                    arr = value.split(',');

                    for (var i = 0; i <

arr.length; i++) {
                        if ($(this).val() == arr[i]) {

                            $(this).attr('checked', true);

                            break;

                        }

                    }

                } catch (e) {

                    //  

                    $(this).attr('checked', value);

                }

            } else {

                $(this).val(value);

            }

        } else if (tagName == 'TEXTAREA') {

            $(this).val(value);

        } else if (tagName == 'SELECT') {

            //console.log($(this).hasClass("select2"));

            if ($(this).hasClass("select2")) {

                //select2        

                $(this).val(value).trigger("change");

            } else {

                $(this).val(value);

            }



        }



    });

}

}