Различные действия формы, основанные на событиях выбора изменений

Я использую Apache BeeHive. Мой JSP содержит форму () с раскрывающимся списком () и кнопкой отправки (). Когда нажата кнопка отправки, будет отправлено действие формы по умолчанию ("doAction1"). Я хочу, чтобы другое действие ("doAction2") было отправлено при выборе варианта из раскрывающегося списка (см. Рисунок 1).

Вначале я хотел создать функцию JavaScript, которая изменяет атрибут действия формы на новое имя действия, а затем отправляет форму (см. Рисунок 2), но это не сработало. Я обнаружил, что тег переводит "doAction1" в полный URL-адрес, как http://localhost:7001/app/doAction1.do,

Строка "doAction2", которую я передаю в метод JavaScript submitForm (form, newAction), не может преобразовать "doAction2" в соответствующий URL-адрес (что вполне возможно, но только в хитрой форме). Я искал тег 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>

1 ответ

function submitForm(form, newAction) {
    form.action = newAction + ".do";
    form.submit();                  
}

или же

<c:url var="newActionUrl" value="/the/path/to/the/action/doAction2.do"/>

<netui:select dataSource="actionForm.field1"
              optionsDataSource="${actionForm.field1Selections}"
              onChange="submitForm(this.form, '${newActionUrl}')"/>
Другие вопросы по тегам