2009-01-31 1 views
8

Я использую 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> 

ответ

0
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}')"/> 

 Смежные вопросы

  • Нет связанных вопросов^_^