我正在使用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>