javascript - 动态下拉菜单无法正常工作

标签 javascript select dynamic

我在 JavaScript 中动态创建了 3 个下拉列表,但不知道如何获取这 3 个下拉列表的值,向下拉列表添加 name 属性不起作用。这是完整的代码..

function addrow() {
    rowcount++;
    document.getElementById("myTableData").style.display="block";
    var el = document.createElement('input');
        el.type = 'text';
        el.name = 'kname';
        var del = document.createElement('input');
        del.type = 'button';
        del.name = 'delll';
        del.value = 'del';
        del.onclick = function(){
            tr.parentElement.removeChild(tr); rowcount--;
            if(rowcount == 0){
            document.getElementById("myTableData").style.display = "none"; 
        }
        };
        var el_r = document.createElement('input');
        el_r.type = 'radio';
        el_r.name = 'gender'+rowcount+'[]';
        el_r.value ='FEMALE';
      //el_r.id = "rad1";  
      //el_r.defaultChecked = true;   
        var el_r2 = document.createElement('input');
        el_r2.type = 'radio';
        el_r2.name = 'gender'+rowcount+'[]';
        el_r2.value ='MALE';
      //el_r2.id = "rad2";  
        var obj1 = document.createTextNode("Female");  
        var obj2 = document.createTextNode("Male");  
        var objLabel = document.createElement("label");  
        objLabel.htmlFor = el_r.id;  
        objLabel.appendChild(el_r);  
        objLabel.appendChild(obj1);
        var objLabel2 = document.createElement("label");  
        objLabel2.htmlFor = el_r2.id;  
        objLabel2.appendChild(el_r2);  
        objLabel2.appendChild(obj2);  

      //**dropdown**    
        var el_s = document.createElement('select');
        el_s.onchange =  function(){ 
            var r = el_s.options[el_s.selectedIndex].value;
        }
        for(var i=0;i<32;i++){
            var j = i;
            j = document.createElement('option');
            j.text=i;
            j.name="day";
            j.value=j;
            el_s.appendChild(j);
        }
        var month = new Array("January","Februray","March","April","May","June","July","August","September","October","November","December");
        var el_sm = document.createElement('select');
        for(var i=0;i<month.length;i++){
            var j = i;
            j = document.createElement('option');
            j.text=month[i];
            j.name="month";
            j.value=month[i];
            el_sm.appendChild(j);
        }
        var el_sy = document.createElement('select');
        for(var i=2013;i>1950;i--){
            var j = i;
            j = document.createElement('option');
            j.text=i;
            j.name="year";
            j.value=j;
            el_sy.appendChild(j);
        }
        var table = document.getElementById("myTableData");
        var tableBody = document.createElement('TBODY');
        table.appendChild(tableBody);
        var tr = document.createElement('TR');
        tableBody.appendChild(tr);
        var td = document.createElement('TD');
        td.width='175';
        td.appendChild(el);
        tr.appendChild(td);
        var td = document.createElement('TD');
        td.width='245';
        td.appendChild(objLabel);
        td.appendChild(objLabel2);
        tr.appendChild(td);
        var td = document.createElement('TD');
        td.width='245';
        td.appendChild(el_s);
        td.appendChild(el_sm);
        td.appendChild(el_sy);
        tr.appendChild(td);
        var td = document.createElement('TD');
        td.width='20';
        td.appendChild(del);
        tr.appendChild(td);
        myTableData.appendChild(table);
}

以上代码位于表单标签中。 此代码工作正常,但预期提供所选日期值的下拉部分未显示。我正在 url 中检查此内容

最佳答案

对于要默认选择的属性,您必须将 selected 属性设置为 true :

optionObject.selected=true

编辑

我使用您的代码向您展示它是如何工作的(在本示例中,选定的值将为 2011,但您可以更改条件以选择您想要的值):

var el_sy = document.createElement('select');
for(var i=2013;i>1950;i--) {
    var j = i;
    j = document.createElement('option');
    j.text=i;

    j.selected = false;
    if (2011 == i) {
       // Select 2011 option
       j.selected = true;
    }

    // j.value=j; // You can't do this, because var j now contain Option object
    j.value = i;
    el_sy.appendChild(j);
}

注意:我也纠正了一个错误:您不能执行 j.value = j; 因为 j 包含 Option 对象。使用 i 将年份设置为值。

关于javascript - 动态下拉菜单无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19244506/

相关文章:

有关 CPU 消耗的 JavaScript 命名函数和事件处理程序

javascript - Highcharts:如何创建年龄组、性别、访问次数的详细饼图?

c++ - 握手成功后 SSL_read() 不返回

sql - 如何在 SELECT 语句中使用 postgres 变量?

c# - 动态转换问题

javascript - 如何使用 javascript 制作与轻量级图表相同的图表

javascript - Angular 中唯一的过滤选择列表仅返回数据集中的单个项目

MySQL 查询联盟脚本表

c# - 根据调用者的类型生成返回类型的动态/通用/其他方法有哪些示例?

javascript - Chrome 浏览器是否破坏了动态脚本加载?