2013-10-08 4 views
1

У меня есть динамическое создание 3 выпадающего списка в javascript, но не знаю, как извлечь значения этих 3 выпадающих атрибутов имени выпадающего списка в раскрывающееся меню. Вот полный код.динамическое выпадающее меню не работает должным образом

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

ответ

1

Вы должны установить selected атрибут true для того, вы хотите по умолчанию выбрать:

optionObject.selected=true 

EDIT

Я использую свой код, чтобы показать вам, как это (в этом примере выбранное значение будет в 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, чтобы установить год как значение.

+0

plz объясните, я не могу понять, что вы хотите сказать – user2750762

+0

@ user2750762: Я редактировал свое сообщение, чтобы показать вам пример. – Elorfin

Смежные вопросы