请问下面的是下拉从1-305、402-861、1004-1658,我先随便写的这三个,实际当中有好多个数据的。中间有断开的,我下面的代码是可以显示出来,但是打开非常慢,请问这可以优化吗,或者可以有更好的方法吗,谢谢<select name="" id="">
for(var i=1; i<=305; i++)
   {
     document.write('<option value=');
     document.write(i);
     document.write('>');
     document.write(i);
     document.write('</option>');
   }
for(var i1=402; i<1=861; i1++)
   {
     document.write('<option value=');
     document.write(i1);
     document.write('>');
     document.write(i1);
     document.write('</option>');
   }
for(var i2=1004; i<=1658; i2++)
   {
     document.write('<option value=');
     document.write(i2);
     document.write('>');
     document.write(i2);
     document.write('</option>');
   }
</scelect>
下拉菜单select

解决方案 »

  1.   

    ajax 把返回的data添加到这块
      

  2.   

    需求本身有問題,這么長的下拉列表,你讓別人怎麼選擇數據中間有斷層,那就分幾組
    用多個tab來顯示
    1-400 | 402-861 | 1004- 1658
    每個tab的選擇列表,用li來寫“<li onclick="selectIt(1)">1</li>”最后用一個<input type='hidden' id="num" />來記錄用戶的選擇function selectIt(id) {
        $('#num').val(id);
    }
      

  3.   

    嘿嘿,回答有些跑題了
    var htmls = [];
    var data = [[1, 305], [402, 861], [1004, 1658]];
    var l, t, s, e;
    l = data.length;
    htmls.push('<select name="" id="">');
    for(var i = 0; i < l; i++) {
        t = data[i];
        s = t[0];
        e = t[1];
        for(var j = s; j <= e; j++) {
            htmls.push('<option value="'+ j +'">'+ j +'</option>');
        }
    }
    htmls.push('</select>');
    document.getElementById('id').innerHTML = htmls.join('');
      

  4.   

    在后台完成option的key和value的赋值。通过request来传递或者别的方式。
    eg:
    html:
    <select id="salesGroupCode"  multiple="multiple" style="width:230px;">
      <s:iterator var="combo" value="#request.salesGroupMasterList" status="st">
        <option value="<s:property value="comboKey" />"><s:property   value="comboValue" />
        </option>
      </s:iterator>
    </select>
    后台:
    List<Combo> salesGroupMasterList = new ArrayList<Combo>();
    Combo是bean,里面定义
    private String comboKey = "";
    private String comboValue = "";