简体   繁体   English

如何在jsp中使用javascript动态创建下拉框?

[英]How to create dropdown box dynamically using javascript in jsp?

I am trying to create drop down boxes dynamically, like when I click on add button it has to create new drop down box. 我正在尝试动态创建下拉框,就像当我点击添加按钮时,它必须创建新的下拉框。 And drop down list also contains dynamic values like it needs to take current year and has to show up to plus five years. 下拉列表还包含动态值,就像它需要占用当前年份并且必须显示最多五年。 please suggest me to do this. 请建议我这样做。

Thank you.. 谢谢..

Here is the code that I tried. 这是我试过的代码。

javascript code: javascript代码:

function Add()
{

  var name1 = document.createElement("select");
  name1.setAttribute('id',"year1")
  name1.setAttribute('oncreate',"Date1()");
}

function Date1(){
  d = new Date();
  curr_year = d.getFullYear();
  for(i = 0; i < 5; i++)
  {
    document.getElementById('year1').options[i] = new Option((curr_year-1)-i,(curr_year-1)-i);
  }
}

html code: HTML代码:

<input type="button" name="add" value="Add" onclick="Add();">

HTML Code HTML代码

<div id="select-container">
</div>
<button id="add" onclick="addSelect('select-container');">Add Dropdown</button>

Javascript Code Javascript代码

function dateGenerate() {
   var date = new Date(), dateArray = new Array(), i;
   curYear = date.getFullYear();
    for(i = 0; i<5; i++) {
        dateArray[i] = curYear+i;
    }
    return dateArray;
}

function addSelect(divname) {
   var newDiv=document.createElement('div');
   var html = '<select>', dates = dateGenerate(), i;
   for(i = 0; i < dates.length; i++) {
       html += "<option value='"+dates[i]+"'>"+dates[i]+"</option>";
   }
   html += '</select>';
   newDiv.innerHTML= html;
   document.getElementById(divname).appendChild(newDiv);
}

Please go through the following fiddle. 请通过以下小提琴。 JS Fiddle to insert select element dynamically JS Fiddle动态插入select元素

It 'll create a select element with option of five consecutive years whenever you click the add dropdown button. 每当您单击添加下拉按钮时,它将创建一个连续五年选项的选择元素。

 function abc()
{

 var x=document.getElementById('Select1').value;
var newDiv=document.createElement('div');
var html = '<select id="d2">';
 for(i = x; i < 47; i++) {
   html += "<option value='"+i+"'>"+i+"          </option>";
   }
   html += '</select>';
  newDiv.innerHTML= html;
             document.getElementById('drop').appendChild(newDiv);
   }




 Html:

  <select id='Select1' onchange='abc()'>
  <option value='1'>1</option>
....
 ...
  <div id ='drop'></div>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM