关于json对象向select下拉菜单赋值的问题

关于json对象向select下拉菜单赋值的问题

问题描述:

现有一json对象

success:function(data){
                    var json = JSON.parse(data);
                    //console.log(json.role);
                    $("#id").val(json.role.id);
                    $("#gwbh").val(json.role.roleCode);
                    $("#gwqc").val(json.role.roleName);
                    $("#issystem").val(json.role.isSystem);
                    $("#idread").val(json.role.isread);
                    $("#qx").val(json.role.name);

成功向其他input框赋值成功....

        <select name="permissionId"class="input w50" >

                        <option value="" id="qx"></option>

                        <c:forEach items="${per}" var="per">

                    <option value="${per.id}" selected="selected">${per.name}</option>

                                    </c:forEach>

                                </select>

有一下拉框,标签里id为“qx”的value赋值成功,但就是在页面上不显示图片说明
这是什么原因?

应该需要这么做,你先不给value标签,就是不设置value="",你直接通过id给它加标签value,同时把值设进去。你这种情况我经常遇到,就是你通过val设值只会改变value的值,不会改变显示效果。用attr

下拉好像是循环数据之后赋html到指定下拉框里吧,直接赋值那不是要写很多id?

因为你的 select option 没有value 属性 所以没用 你需要构建 option的时候 给value 属性 这样你在val的时候 才会 显示 value 对应的文本值