我的代码中有一些我昨天不明白的东西。 它与JSP页面有关。 此JSP页面包含一个表单,其中包含: - 2个子按钮(具有相同的名称属性但具有不同的值属性) - 隐藏字段,其名称属性与2个按钮相同,但属性值不同。
为什么我这样做?因为我需要为用户提供3种不同的方式来提交表单。在提交时,表单调用一个servlet,它将确定相关参数的值并进行相应的操作。
当我通过javascript函数(按预期工作)选择列表中的条目时,实际设置了隐藏字段值。
JSP表单的代码:
<form class="form-horizontal text-left" id = "form" action="SubmitMainForm" method="get">
<input type="hidden" id="listbox_ii" name = "sender_control">
...
<button type="submit" name = "sender_control" id = "button_search" value = "button_search" class="btn btn-default col-xs-4">Rechercher</button>
<button type="submit" name = "sender_control" id = "button_delete" value = "button_delete" class="btn btn-default col-xs-4 col-xs-offset-2">Effacer</button>
...
</from>
这不起作用。
当我按照自己的方式使用时,当我通过其中一个按钮提交时,sender_control参数的值始终为“”。 但是,如果我将2个按钮后面的隐藏字段放入表单中,它可以正常工作:
<form class="form-horizontal text-left" id = "form" action="SubmitMainForm" method="get">
...
<button type="submit" name = "sender_control" id = "button_search" value = "button_search" class="btn btn-default col-xs-4">Rechercher</button>
<button type="submit" name = "sender_control" id = "button_delete" value = "button_delete" class="btn btn-default col-xs-4 col-xs-offset-2">Effacer</button>
...
<input type="hidden" id="listbox_ii" name = "sender_control">
</from>
这很好用。
你可以解释一下原因吗?为什么隐藏字段的位置会改变行为? 提前谢谢。答案 0 :(得分:0)
当您提交表单时,其中的成功控件将按该顺序显示在表单数据中。
如果用于提交表单,则提交按钮才会成功。
显然,如果服务器端代码与之前的代码名称相同,则忽略后续值。
因此,如果隐藏的输入出现在按钮之前,那么sender_control
的值将是隐藏输入的值。
如果它出现在按钮后面,sender_control
的值将是您点击的按钮。