[英]Different form actions based on select change events
我正在使用Apache BeeHive。 我的JSP包含一個帶有下拉框(<netui:select>)和一個提交按鈕(<netui:button>)的表單(<netui:form>)。 當按下提交按鈕時,表單的默認動作(“ doAction1”)將被提交。當我從下拉列表中選擇一個選項時,我想要一個不同的動作(“ doAction2”)被提交 (見圖1)。
我的第一個傾向是創建一個JavaScript函數,該函數將表單的action屬性更改為新的action名稱,然后提交表單(參見圖2),但這沒有用。 我發現標記將“ doAction1”轉換為完整的URL,例如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>
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}')"/>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.