簡體   English   中英

基於選擇更改事件的不同表單操作

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM