Добавить Struts 2 выберите раскрывающийся список динамически с помощью JavaScript / JQuery

0

У меня есть страница 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.

Теги:
jsp
struts2

3 ответа

4
Лучший ответ

<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");
}
  • 0
    Метод jQuery Clone не работает для меня :(
  • 0
    @Sujal 1. Вы должны включить JQuery скрипт на странице. 2. Вы заметили, что он добавил cssClass для выбора тега
Показать ещё 3 комментария
1

Вы можете попробовать этот 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). Но вы можете сделать аякс-вызов для этого.

  • 0
    Проблема не в добавлении статического выпадающего списка. Добавление статического выпадающего списка работает нормально. Мне нужно использовать распорки <s: select> для динамического отображения
  • 0
    все теги Struts отображаются при загрузке страницы. наш браузер не может понять теги <s: ...> .. поэтому, если вы хотите динамически добавлять теги <s: ...>, вам нужно обновить страницу, чтобы теги <s: ...> могли рендерить на простую HTML страницу.
0

Теги расположений только один раз интерпретируются сервером до того, как страница будет доставлена. Если вы манипулируете домом впоследствии JavaScript, вы не можете использовать JSP-теги.

  • 0
    так есть ли другой способ сделать это?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню