Я использую Apache BeeHive. Мой JSP содержит форму (< netui: form >) с выпадающим списком (< netui: выберите >) и кнопку отправки (< netui: button >). Когда нажата кнопка отправки, будет отправлено действие по умолчанию формы («doAction1»). Я хочу, чтобы другое действие («doAction2») было отправлено, когда в раскрывающемся списке выбрана опция. (см. Рис. 1).Действия разных форм, основанные на событиях смены выбора
Моим первым наклонением было создать функцию JavaScript, которая изменит атрибут формы на новое имя действия, а затем отправит форму (см. Рис. 2), но это не помогло. Я узнал, что тег переводится «doAction1» до полного URL-адреса, такого как http://localhost:7001/app/doAction1.do
.
Строка «doAction2», которую я передаю методу JavaScript submitForm (form, newAction), не может преобразовать «doAction2» в соответствующий URL-адрес это могло бы, но только в kludgey образом). Я отправился на поиск тега netui, который мог преобразовать имя простого действия в URL-адрес, но я не смог его найти.
Итак, как правильно это сделать?
Рисунок 1 - JSP-фрагмент кода
<netui:form action="doAction1" method="post">
<netui:select dataSource="actionForm.field1"
optionsDataSource="${actionForm.field1Selections}"
onChange="submitForm(this.form, 'doAction2')"/>
<p/>
<netui:button>Submit</netui:button>
</netui:form>
Рисунок 2 - JavaScript функция, чтобы изменить форму действия и отправить форму
<netui:scriptBlock placement="before">
function submitForm(form, newAction) {
form.action = newAction;
form.submit();
}
</netui:scriptBlock>