当前位置: 代码迷 >> Java Web开发 >> Select 后面再增加个Select有关问题,告急 !
  详细解决方案

Select 后面再增加个Select有关问题,告急 !

热度:49   发布时间:2016-04-16 22:02:38.0
Select 后面再增加个Select问题,在线等,告急 !!!

问题:在页面里,我想在一个select选项后面通过JS动态地再添加一个或一个以上的select选项。可每次执行完JS代码后,select这个对象是添加进去了,可里面没有选项。

运行完JS后的效果图:

JS代码如下:

var i=1;
function add()
{
var j=i-1;
var tagname="project_contractor"+j;
var id="project_contractor"+i;

var head="<select class='InputStyle' name='project_contractor' id='"+id+"'><option value='0'>请选择</option>";
var project_no=document.getElementById(tagname);
var project_noIndex=project_no.selectedIndex;
var project_noValue=project_no.options[project_noIndex].value;

if(project_noValue==0)
{
alert("上一未选择,不需再增加!");
return false;
}

$.ajax( {  
  type: "POST",  //提交方式 
        url : 'customerSerch.bia', //提交路径         
        success : function(data) {         
         var json=eval('(' + data + ')');
         for(var i=0;i<json.length;i++){
         head+="<option value='"+json[i].customer_no+"'>"+json[i].customer_name+"</option>";
         }
         var br = document.createElement("<br />");
            var Selects = document.getElementById("project_contractorSelect");
            Selects.appendChild(br);
            alert(head+"</select>");
            Selects.appendChild(document.createElement(head+"</select>"));
        },  
        error : function() {  
          alert("系统报错,稍后重试!");  
        }         
});

    i++;
}

声明:Ajax方法执行成功,后台数据取出成功。

这个问题折腾一天了,求大神解答。
------解决方案--------------------
alert(head+"</select>");这句打印出来还正常啊?
------解决方案--------------------
var sel= document.createElement("select");
sel.options[0] = new Option("1", "aaa");
sel.options[1] = new Option("2", "bbb");
------解决方案--------------------
改成这样试试:Selects.append(head+"</select>");
------解决方案--------------------
1、首先点开浏览器F12开发者工具,查看你新增的select那段代码里面是否有option元素,可能是option元素在组装时因为不符合标准所以未能正常显示。
2、如果第一步并没有找到Option元素,就查看你的代码逻辑,for循环是否进入了,在for循环里面添加标记。
PS,调试JS推荐用console.log()代替alert()  前者会在浏览器的控制台打印信息,不会弹出对话框阻断程序运行
  相关解决方案