У меня есть страница student.jsp
которая загружает выбранный выпадающий список из базы данных.
<s:select list="ftyList" name="fid" listKey="fid" listValue="name" label="Select a Faculty" />
Теперь, когда я нажимаю кнопку "Добавить", мне нужно добавить больше одного и того же раскрывающегося списка. Для этого у меня есть div
с кнопкой Add и моим кодом JavaScript, как показано ниже:
<div id="div">
<button onclick="addListFunction()">Add</button>
</div>
addDropDown.js:
function addListFunction() {
var d = document.getElementById("div");
d.innerHTML += "<p><s:select list='ftyList' name='fid' listKey='fid' listValue='name' label='Select a Faculty' /></p>";
}
Проблема в том, что когда я нажимаю кнопку "Добавить", она добавляет только пустое пространство. При использовании firebug я мог видеть, что тег Struts печатался так же, как и выше, вместо тегов HTML.
<s:select>
- это тег struts, который нельзя добавить непосредственно из javascript и предполагается, что он запускается на стороне сервера.
Вы можете использовать метод jQuery Clone при нажатии кнопки "Добавить".
<s:select list="ftyList" name="fid" listKey="fid" listValue="name" cssClass="fidSelect" label="Select a Faculty" />
function addListFunction() {
$('.fidSelect').clone().insertAfter(".fidSelect");
}
Вы можете попробовать этот uisng jQuery
function addListFunction() {
var optionList = [{"key":"1" , "value":"item1"},
{"key":"2" , "value":"item2"},
{"key":"3" , "value":"item3"},
{"key":"4" , "value":"item4"},
{"key":"5" , "value":"item5"},
{"key":"6" , "value":"item6"}];
var combo = $("<select>").attr("id", "inputAuto").attr("name", "selectTag");
$.each(optionList, function (j, el1) {
var opt = $("<option>").attr("value",el1.key).append(el1.value);
combo.append(opt);
});
$("#DivId").append(combo);
}
В этом я статически определяю массив опции (например, optionList). Но вы можете сделать аякс-вызов для этого.
Теги расположений только один раз интерпретируются сервером до того, как страница будет доставлена. Если вы манипулируете домом впоследствии JavaScript, вы не можете использовать JSP-теги.
cssClass
для выбора тега