为什么表单行为会根据控件顺序而改变?

时间:2015-08-01 08:31:37

标签: html jsp

我的代码中有一些我昨天不明白的东西。 它与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>

这很好用。

你可以解释一下原因吗?为什么隐藏字段的位置会改变行为?

提前谢谢。

1 个答案:

答案 0 :(得分:0)

当您提交表单时,其中的成功控件将按该顺序显示在表单数据中。

如果用于提交表单,则提交按钮才会成功。

显然,如果服务器端代码与之前的代码名称相同,则忽略后续值。

因此,如果隐藏的输入出现在按钮之前,那么sender_control的值将是隐藏输入的值。

如果它出现在按钮后面,sender_control的值将是您点击的按钮。