我正在使用Apache BeeHive.我的JSP包含一个表单(<netui:form>),带有一个下拉框(<netui:select>)和一个提交按钮(<netui:button>).当按下提交按钮时,将提交表单的默认操作("doAction1").当从下拉列表中选择一个选项时,我想要提交 不同的操作("doAction2"). (参见图1).
我的第一个倾向是创建一个JavaScript函数,将表单的action属性更改为新的操作名称,然后提交表单(参见图2),但这不起作用.我发现标签将"doAction1"翻译为完整的URL http://localhost:7001/app/doAction1.do.
我传递给JavaScript submitForm(form,newAction)方法的"doAction2"字符串无法将"doAction2"转换为适当的URL(它可以,但只能以kludgey方式).我去寻找一个可以将普通动作名称转换为URL的netui标签,但我找不到一个.
那么,实现这一目标的正确方法是什么?
图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>
Run Code Online (Sandbox Code Playgroud)
图2 - 用于更改表单操作和提交表单的JavaScript函数
<netui:scriptBlock placement="before">
function submitForm(form, newAction) {
form.action = newAction;
form.submit();
}
</netui:scriptBlock>
Run Code Online (Sandbox Code Playgroud)