根据java脚本帮助选择的值将输入元素附加到dom中?

时间:2012-02-22 19:48:33

标签: javascript html ajax jsp

<html>
<body>
       <script type="text/javascript">
       function showSelected(val)
         {
    document.getElementById('selectedResult').innerHTML = "The selected number    
    is - " + val;
         }
      </script>
         <div id='selectedResult'></div>
           <select name='test' onChange='showSelected(this.value)'> 
            <option value='1'>one </option>
            <option value='2'>two </option>
          </select>

 

我需要帮助,当我选择&#34;一个&#34;在下拉列表中,脚本需要在表格中显示一个文本框(输入字段),当我选择&#34;两个&#34;在下拉脚本中需要在表格中显示两个文本框((输入字段)?如何实现这个PLZ帮助我?

1 个答案:

答案 0 :(得分:0)

要获取文本以及选择框的值,您应该参考所选选项而不仅仅是选择框:

<select name='test' onchange='showSelected(this[this.selectedIndex].value)'>

<select name='test' onchange='showSelected(this[this.selectedIndex].text)'>  

除此之外,您的代码运行正常。

由于已经澄清了根据所选值将输入元素附加到dom中的问题:

function showSelected(num) {
  var docFrag = document.createDocumentFragment();
  for(var i = 0; i < num; i++) {
    var input = document.createElement('input');
    input.setAttribute('type', 'text');
    docFrag.appendChild(input);
  }

  var selectedResult = document.getElementById('selectedResult');
  while(selectedResult.firstChild) selectedResult.removeChild(selectedResult.firstChild);
  selectedResult.appendChild(docFrag);
}

对该问题的另一个澄清:

function showSelected(num) {
  var tr = jQuery('<tr><td><input type="text" /></td></tr>'),
      table = jQuery('<table><tbody></tbody></table>'),
      tbody = table.find('tbody');

  for(var i = 0; i < num; i++) {
    tbody.append( tr.clone() );
  }

  jQuery('#selectedResult').empty().append(table);
}