• json数据渲染表单元素出现的问题


    解析页面表单元素

     parseForm: function () {
    var data = {};
    $(this).find('input').each(function () {
    switch ($(this).attr('type')) {
    case 'radio':
    case 'checkbox':
    if ($(this).prop('checked')) {
    data[$(this).attr('name')] = $(this).val();
    }
    break;
    default:
    data[$(this).attr('name')] = $(this).val();
    }

    });
    $(this).find('select').each(function () {
    data[$(this).attr('name')] = $(this).val();
    });
    $(this).find('textarea').each(function () {
    data[$(this).attr('name')] = $(this).val();
    });
    return data;
    }
    });

    json数据渲染表单元素
     loadForm: function (jsonstr) {
    try {
    var jsondata = jsonstr == '' ? '' : $.parseJSON(jsonstr);
    } catch (e) {
    throw new Error('非法的json字符串~');
    }
    var self = this;
    var form = {
    input: function (name, val) {
    $(self).find('input[name="' + name + '"]').val(val);
    },
    checkbox: function (name, val) {
    $(self)
    .find('input[name="' + name + '"][type="checkbox"][value="' + val + '"]')
    .attr('checked', 'checked');
    },
    radio: function (name, val) {
    $(self)
    .find('input[name="' + name + '"][type="radio"][value="' + val + '"]')
    .attr('checked', 'checked');
    },
    textarea: function (name, val) {
    $(self).find('textarea[name="' + name + '"]').val(val);
    },
    select: function (name, val, data) {
    var obj = $(self).find('select[name="' + name + '"]');
    if ($.isEmptyObject(obj)) {
    return false;
    }
    if (typeof data == 'string') {
    obj.append(decodeURIComponent(data.replace(/+/g, '%20')));
    }

    var selected = obj.find('option[value="' + val + '"]');
    if ($.isEmptyObject(selected)) {
    obj.find('option:eq(0)').attr('selected', 'selected');
    } else {
    selected.attr('selected', 'selected');
    }
    }
    };
    if (typeof jsondata == 'object') {
    for (var key in jsondata) {
    var d = jsondata[key];
    if (typeof d != 'object' || d.length <= 0) {
    continue;
    }
    if (typeof d.name == 'undefined') {
    continue;
    }
    switch (d.type) {
    case 'select':
    form.select(d.name, d.value, d.data);
    break;
    case 'radio':
    form.radio(d.name, d.value);
    break;
    case 'checkbox':
    form.checkbox(d.name, d.value);
    break;
    case 'textarea':
    form.textarea(d.name, d.value);
    break;
    default :
    form.input(d.name, d.value);
    }
    }
    }
    },
    php代码
    $formObj = new Form();
    $select_arr = ['zulinqixian', 'chanzhengxingzhi', 'pingmiantu', 'gongrefangshi', 'xiaofangpiwen', 'zhengzhaobanli', 'shifouhanpiao', 'dizeng', 'dizengzhi', 'ya', 'fu',
    'mianzuqi', 'kongtiaoleixing', 'liangyiqu', 'xiyiqu', 'tingchechangdi', 'dianti',];
    foreach (json_decode($ProjectObj->getContent(), true) as $k => $v) {
    if ($k == 'yuanxiaofangsheshi-1') {
    $formObj->addCheckboxInput('yuanxiaofangsheshi-1', $v);
    } else if ($k == 'yuanxiaofangsheshi-2') {
    $formObj->addCheckboxInput('yuanxiaofangsheshi-2', $v);
    } else {
    if(in_array($k,$select_arr)){
    $formObj->addSelect($k, $v, []);
    }
    }
    }

  • 相关阅读:
    MySQL5.7二进制安装及多实例
    MySQL5.7版本的yum安装方式
    PHP安装
    MySQL5.6安装部署及多实例主从
    Prometheus监控MySQL和Linux主机结合Grafana出图
    MySQL5.7源码安装(编译)
    MySQL基本管理
    WC框架
    .NET 调用虚方法2 转
    .NET 调用虚方法1 转
  • 原文地址:https://www.cnblogs.com/Cxymds/p/5278312.html
Copyright © 2020-2023  润新知