我正在使用Apache BeeHive。我的JSP包含一個帶有下拉框(< netui:select >)和一個提交按鈕(< netui:按鈕>)的表單(< netui:表單>)。當提交按鈕被按下時,表單的默認動作(「doAction1」)將被提交當我從下拉列表中選擇一個選項時,我想要提交一個不同的動作(「doAction2」)(見圖1)基於選擇更改事件的不同表單操作
我的第一個傾向是創建一個JavaScript函數,將表單的動作屬性更改爲新的動作名稱,然後提交表單(請參見圖2),但這不起作用,我發現標記翻譯「doAction1」爲完整的網址,例如http://localhost:7001/app/doAction1.do
傳遞給JavaScript submitForm(form,newAction)方法的「doAction2」字符串無法將「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>