Spring表单标签复选框(表单:复选框)隐藏字段未发送到服务器?

时间:2015-12-02 20:32:13

标签: javascript jquery html spring

我有一个使用JQuery 2.1.3和Spring MVC 4.1.3的表单。在表单上有一个复选框,导致Spring create a hidden field and add that to my form。这是正常的,预期的Spring行为,然而,隐藏元素不会传递回服务器。在Chrome的开发者工具中检查POST,我可以看到复选框值如果已经过检查就会返回,如果未选中则不会返回任何内容。无论哪种方式,我都看不到隐藏领域的价值。

我正在使用JQuery onclick()处理程序提交表单,并想知道这是否可能以某种方式阻碍了预期的行为,因为除此之外我无法看到任何问题。这是代码:

JSP源:

<form:input id="mycheckboxinput" path="mycheckbox" />

生成的HTML:

<input id="mycheckboxinput" name="mycheckbox" type="checkbox" value="true" checked="checked"/>
<input type="hidden" name="_mycheckbox" value="on"/>

JQuery提交代码:

$("#myButton").on("click", function (event) {
    event.preventDefault();
    $("#myForm").attr("action", "alternateaction.do");
    $("#myForm").submit();
});

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

答案结果与复选框本身完全无关。我们正在禁用表单上的所有控件,然后重新打开复选框。因为“所有其他控件”包含隐藏字段,所以它们也被禁用,并且没有通过POST发送到控制器。这打破了Spring功能,因为它需要这些字段才能工作。所以,当你在普通表单工作流程之外使用Javascript关闭和打开字段时要小心。