bulidfer 2018-08-01 02:57 采纳率: 0%
浏览 2095
已结题

select2 用属性选择器 动态添加 只有新添加的标签有渲染 原有标签的渲染没了

图片说明

js代码 update界面显示部分

// 显示修改关键字症状界面
function updateView(id, system_id) {
    $("#btntype").val(1);

    $("#Submit1").click(function() {
        add(1);

    });

    $
            .ajax({
                type : "POST",
                url : "/erzhentang/manage/forAjax.do?requestType=12.1",
                data : "id=" + id + "&system_id=" + system_id, // 发送到服务器的数据默认id是结论id
                success : function(msg) {
                    $("#xuewei_id").val("1,2,3").select2();
                    /* alert(msg); */
                    var json = eval('(' + msg + ')');
                    document.getElementById("addModel").style.display = "block";
                    document.getElementById("id1").value = json.earScanJielun.id;
                    document.getElementById("system_id1").value = json.earScanJielun.system_id;
                    /* 遍历所属系统下所有 耳穴频扫疾病项 */
                    var arrESJ = eval(json.listEarScanJibing);// arrESJ是一个数组
                    var checkESJ = document.getElementById("jibing_num1");
                    var str2 = "";
                    for (var j = 0; j < arrESJ.length; j++) {
                        str2 += "<option value=\"" + arrESJ[j].jibing_num
                                + "\">" + arrESJ[j].name + "</option>";
                        var checkESJ2 = arrESJ[j].name;
                        if (arrESJ[j].jibing_num == json.earScanJielun.jibing_num) {// 疾病编号人为控制每个编号都是唯一
                            arrESJ[j].name = "selected='selected'";
                        }
                        $("#jibing_num1").html(str2);
                    }
                    document.getElementById("jibing_num1").value = json.earScanJielun.jibing_num;
                    document.getElementById("jielun_rank1").value = json.earScanJielun.jielun_rank;
                    document.getElementById("jielun1").value = json.earScanJielun.jielun;
                    /* 下半截部分组合表动态展示修改和添加 */
                    var arrESC = eval(json.listEarScanCp);// arrESC是一个数组频扫结论组合表
                    var str = "";
                    var str1 = "";
                    for (var i = 0; i < arrESC.length; i++) {
                        str += "<tr>";
                        str += "<td colspan=\"8\">";
                        str += "<div style=\"margin-left: 148px;\" id=\"earScanCp\">";
                        str += "<div style=\"float: left;\">";
                        str += "<textarea style=\"width: 50px;margin-left: -86px;position: absolute;\" id=\"cp_id\" name=\"cp_id\" >"
                                + arrESC[i].id + "</textarea>";
                        str += "<select style=\"width: 60px;height: 36px;margin-left: 20px;\" id=\"gender\" name=\"gender\" >"
                        var myselect = document.getElementById("gender");// 这个获取的是静态jsp页面里标签
                        /*
                         * 下拉框主要是应展示项和所有下拉选项的值判断是否对应 分清主和客
                         * 所有展示项目为主表客表的某一项值和遍历主表的值对应 这里面 下拉框所有选项值是主表
                         */
                        var str1 = "";
                        for (var j = 0; j < myselect.options.length; j++) {// 下拉框是主家从静态页面获取并且遍历它
                            // alert("j值:" + myselect.options[j].value);
                            str += "<option value=\""
                                    + myselect.options[j].value
                                    + "\" "
                                    + (myselect.options[j].value == arrESC[i].gender ? "selected='selected'"
                                            : "") + ">"
                                    + myselect.options[j].text + "</option>";
                        }
                        "</select>";
                        str += "<textarea style=\"width: 50px;margin-left: 10px;\" id=\"min_age\" name=\"min_age\" >"
                                + arrESC[i].min_age + "</textarea>";
                        str += "<textarea style=\"width: 50px;margin-left: 10px;\" id=\"max_age\" name=\"max_age\" >"
                                + arrESC[i].max_age + "</textarea>";
                        // str += "<textarea style=\"width:
                        // 300px;margin-left:10px;\" id=\"xuewei_id\"
                        // name=\"xuewei_id\" >"
                        // + arrESC[i].xuewei_id + "</textarea>";
                        str +="<div id=\"selectSection\">";
                        str += "<select style=\"width: 300px;margin-left:10px;\" id=\"xuewei_id\" name=\"xuewei_id\"class=\"combox\" multiple >"
                        str += "<optgroup label=\"小辈儿组\">";
                        str += "<option value=\"1\">心</option>";
                        str += "<option value=\"2\" " + "selected='selected'"
                                + ">" + "肺" + "</option>";
                        str += "<option value=\"3\" " + "selected='selected'"
                                + ">" + "小肠" + "</option>";
                        str += "<option value=\"4\">" + "口" + "</option>";
                        str += "<option value=\"5\">" + "食道" + "</option>";
                        str += "</optgroup>";
                        str += "</div>"             

                        $("#xuewei_id").val("1,2,3").select2();

                        str += "<textarea style=\"width: 220px;margin-left: 10px;\" id=\"chuzhen_id\" name=\"chuzhen_id\" >"
                                + arrESC[i].chuzhen_id + "</textarea>";
                        str += "<select style=\"width: 60px;height: 36px;margin-left: 10px;\" id=\"bp\" name=\"bp\" >"
                        var myselect1 = document.getElementById("bp");// 这个获取的是静态jsp页面里标签
                        for (var k = 0; k < myselect1.options.length; k++) {// 下拉框是主家从静态页面获取并且遍历它
                            // alert("j值:" + myselect1.options[k].value);
                            str += "<option value=\""
                                    + myselect1.options[k].value
                                    + "\" "
                                    + (myselect1.options[k].value == arrESC[i].bp ? "selected='selected'"
                                            : "") + ">"
                                    + myselect1.options[k].text + "</option>";
                        }
                        "</select>";
                        str += "<textarea style=\"width: 50px; height: 36px;margin-left: 10px;margin-top: 0px;\" id=\"jielun_conform\" name=\"jielun_conform\">"
                                + arrESC[i].jielun_conform + "</textarea>";
                        str += "</div>";
                        str += "<div >";
                        str += " <input type=\"button\" onclick=\"delRow(this,"
                                + arrESC[i].id
                                + ","
                                + arrESC[i].bianzhengId
                                + ")\" value=\"删除\" id=\"deleteESC\" name=\"deleteESC\" style=\"float: left; margin-left:10px; margin-top: 5px;\">";
                        str += "</div>";
                        str += "</div>";
                        str += "</td>";
                        str += "</tr>";
                        /* 替换静态页面 */
                        $("#tbody1").html(str);

                        select2Execute();
                    }

                }
            });
} 

js代码add添加行

 // 添加行 频扫组合表信息
function addRow1() {
    var str = "";
    str += "<tr>";
    str += "<td colspan=\"8\">";
    str += "<div style=\"margin-left: 148px;\" id=\"earScanCp\">";
    str += "<div style=\"float: left;\">";
    str += "<textarea style=\"width: 50px;margin-left: -86px;position: absolute;\" id=\"cp_id\" name=\"cp_id\" ></textarea>";
    str += "<select style=\"width: 60px;height: 36px;margin-left: 20px;\" id=\"gender\" name=\"gender\" >"
    var myselect = document.getElementById("gender");// 这个获取的是静态jsp页面里标签
    for (var j = 0; j < myselect.options.length; j++) {// 下拉框是主家从静态页面获取并且遍历它
        str += "<option value=\"" + myselect.options[j].value + "\">"
                + myselect.options[j].text + "</option>";
    }
    "</select>";
    str += "<textarea style=\"width: 50px;margin-left: 10px;\" id=\"min_age\" name=\"min_age\" ></textarea>";
    str += "<textarea style=\"width: 50px;margin-left: 10px;\" id=\"max_age\" name=\"max_age\" ></textarea>";
    // str += "<textarea style=\"width: 300px;margin-left: 10px;\"
    // id=\"xuewei_id\" name=\"xuewei_id\" ></textarea>";


    str +="<div id=\"selectSection\">";
    str += "<select style=\"width: 300px;margin-left:10px;\" id=\"xuewei_id\" name=\"xuewei_id\" class=\"combox\" multiple >"
    str += "<optgroup label=\"小辈儿组\">";
    str += "<option value=\"1\">心</option>";
    str += "<option value=\"2\">" + "肺" + "</option>";
    str += "<option value=\"3\">" + "小肠" + "</option>";
    str += "<option value=\"4\">" + "口" + "</option>";
    str += "<option value=\"5\">" + "食道" + "</option>";
    str += "</optgroup>";
    "</select>";
    str += "</div>";
    str += "<textarea style=\"width: 220px;margin-left: 10px;\" id=\"chuzhen_id\" name=\"chuzhen_id\" ></textarea>";
    str += "<select style=\"width: 60px;height: 36px;margin-left: 10px;\" id=\"bp\" name=\"bp\" >"
    var myselect1 = document.getElementById("bp");// 这个获取的是静态jsp页面里标签
    for (var k = 0; k < myselect1.options.length; k++) {// 下拉框是主家从静态页面获取并且遍历它
        // alert("j值:" + myselect1.options[k].value);
        // alert("text值:" + myselect1.options[k].text);
        str += "<option value=\"" + myselect1.options[k].value + "\">"
                + myselect1.options[k].text + "</option>";
    }
    "</select>";
    str += "<textarea style=\"width: 50px; height: 36px;margin-left: 10px;\" id=\"jielun_conform\" name=\"jielun_conform\"></textarea>";
    str += "</div>";
    str += "<div >";
    str += " <input type=\"button\" onclick=\"delRow(this)\" value=\"删除\" id=\"deleteESC\" name=\"deleteESC\" style=\"float: left; margin-left:10px; margin-top: 5px;\">";
    str += "</div>";
    str += "</div>";
    str += "</td>";
    str += "</tr>";
    $("#rowTable1").append(str);
    // $("select[name='xuewei_id']").select2({
//  $("#xuewei_id").select2().trigger();
//   $("#xuewei_id").trigger('change')
    select2Execute();
}

执行select2部分

 /* 执行select2方法 */
function select2Execute() {

    $(function() {
//       $("select[name='xuewei_id']").select2({
//       $('select[id="xuewei_id"]').select2({
//      $('#xuewei_id').select2({
//           $("#selectSection").find("select.combox").select2({ 
                 $(".combox").select2({

            placeholder : "请至少选择一个人名",
            tags : true,
            createTag : function(decorated, params) {
                return null;
            },
            width : '256px'
        });

        function formatState(state) {
            if (!state.id) {
                return state.text;
            }
            var $state = $('<span>' + state.text + '</span>');
            return $state;
        }
        ;

        $('#sel_recommender').select2({
            placeholder : "请选择一个人名",
            templateResult : formatState,
            width : '256px'
        });
    });
}
  • 写回答

5条回答

  • _zming 2018-08-01 04:46
    关注

    之前你的提问,已经回答过了,你还是没搞明白。

     str += "<select style=\"width: 300px;margin-left:10px;\" id=\"xuewei_id
    $("#xuewei_id").val("1,2,3").select2();这代代码
    

    你这两行代码放到循环里面,所有select都共用一个id那通过id选择器只能匹配到一个,这样写有很大问题,你实在想用id选择器,最起码也编个号
    id=“xuewei_id1”,id=“xuewei_id2”。。。。

    评论

报告相同问题?

悬赏问题

  • ¥15 本题的答案是不是有问题
  • ¥15 关于#r语言#的问题:(svydesign)为什么在一个大的数据集中抽取了一个小数据集
  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 蓝桥杯单片机第十三届第一场,整点继电器吸合,5s后断开出现了问题
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 Arcgis相交分析无法绘制一个或多个图形