Java 如何强制Firefox发送隐藏字段?
这是我的密码:Java 如何强制Firefox发送隐藏字段?,java,firefox,parameters,struts2,ognl,Java,Firefox,Parameters,Struts2,Ognl,这是我的密码: <s:form id="deployChapters%{#chapterTree.nodeId}" action="%{deployChapterUrl}" theme="simple" method="POST"> <s:hidden name="nodeId" value"%{#chapterTree.nodeId}" /> </s:form> 我使用Ajax提交此表单。对于Firefo
<s:form
id="deployChapters%{#chapterTree.nodeId}"
action="%{deployChapterUrl}"
theme="simple"
method="POST">
<s:hidden name="nodeId" value"%{#chapterTree.nodeId}" />
</s:form>
我使用Ajax提交此表单。对于Firefox,隐藏字段nodeId不会被发送。它是用铬或IE制作的
如何要求FF发送隐藏字段?Struts/JSP代码是服务器端代码,不依赖客户端浏览器呈现HTML 因此,您的Javascript函数有一个问题,它发送基于html表单数据的Ajax请求post或get数据
请检查/调试Javascript代码以修复它。在表单中添加提交按钮,更改id属性,以便使用jQuery和attach处理程序轻松选择它
<s:form
id="deployChaptersForm"
action="%{deployChapterUrl}"
theme="simple"
method="POST">
<s:hidden name="nodeId" value"%{#chapterTree.nodeId}" />
<s:submit/>
</s:form>
<script type="text/javascript">
// Attach a submit handler to the form
$("#deployChaptersForm").submit(function(event) {
//Stop form from submitting normally
event.preventDefault();
//Get some values from elements on the page:
var $form = $(this),
value = $form.find("input[name='nodeId']").val(),
url = $form.attr("action");
//Send the data using post
var thePost = $.post(url, {nodeId: value});
//Handle results in data
thePost.done(function(data) {
alert(data);
});
});
</script>
最后,我提出了一个解决方案: 我检测表单何时提交,并以编程方式将隐藏字段添加到表单中。
Thks感谢您的贡献:我不熟悉这个插件,但我认为您可以使用该API部分序列化nodeId的表单,并将其替换为$.post的第二个参数。