如何在javascript中加载选择选项值动态

时间:2014-08-26 18:59:06

标签: java javascript struts

我正在使用java + struts。

我创建动态表行并动态加载到选择选项值 使用javascript我的代码是。

function addRow() {

        var table = document.getElementById('tableID');
        var rowCount = table.rows.length;
        var countval = rowCount;
        var row = table.insertRow(rowCount);

        //country

        var cell1 = row.insertCell(0);
        var element1 = document.createElement("select");
        element1.style.width = "250px";
        element1.id = "countryId" + countval;

        var o = document.createElement('option');
        o.value = "0";
        o.text = "[SELECT]";
        element1.options.add(o);
        cell1.appendChild(element1);

        var o = document.createElement('option');
        o.value = "1";
        o.text = "India";
        element1.options.add(o);
        cell1.appendChild(element1);

}

这是html代码:

<input type="button" value="add" onclick="addRow()">
<table id="tableID"></table>

加载选择选项值正在对struts标记起作用:

<html:select property="countryId">
   <html:optionsCollections name="countryForm" property="countryList" value="countryId" label="countryName"/>
</html:select>

以上代码正在运行,但我需要使用javascript使用选择选项值的相同逻辑。我怎样才能加载国家价值观。请任何人帮助我,谢谢&amp;预先

1 个答案:

答案 0 :(得分:2)

我不明白为什么你需要创建动态选择,即使它是使用Struts标签解决的 但是,如果你需要它,我可以建议你一种非推荐的方法在Javascript中嵌入struts逻辑 等;

function addRow(){
    alert("inside addRow");
    var list = new Array();
    var value = new Array();
    var i = 0;
    <logic:iterate name="countryForm" property="countryList" id="country">
      list[i] = '<bean:write name="country" property="countryName" />';
      value[i] = '<bean:write name="country" property="countryId" />';
      i++;
    </logic:iterate>

    var table = document.getElementById('tableID');
    var rowCount = table.rows.length;
    var countval = rowCount;
    var row = table.insertRow(rowCount);

    //country

    var cell1 = row.insertCell(0);
    var element1 = document.createElement("select");
    element1.style.width = "250px";
    element1.id = "countryId" + countval;

    var o = document.createElement('option');
    o.value = "0";
    o.text = "[SELECT]";
    element1.options.add(o);
    cell1.appendChild(element1);

    for(i=0; i<list.length; i++){
        var item = document.createElement('option');
        item.value = value[i];
        item.text = list[i];
        element1.options.add(item);
        cell1.appendChild(element1);
    }
}