这是我的代码:
<s:form
id="deployChapters%{#chapterTree.nodeId}"
action="%{deployChapterUrl}"
theme="simple"
method="POST">
<s:hidden name="nodeId" value"%{#chapterTree.nodeId}" />
</s:form>
我使用 Ajax 提交此表单。对于 Firefox,隐藏字段
nodeId
不会被发送。它与 Chrome 或 IE 一起使用。
如何让FF发送隐藏字段?
向表单添加一个提交按钮,更改 id 属性,以便使用 jQuery 轻松选择它并附加处理程序
<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>
最后,这是我想出的解决方案:
Struts/JSP 代码(即服务器端代码)不依赖于客户端浏览器来呈现 HTML。
所以,这是你的 Javascript 函数,它发送带有基于 html 表单数据的数据的 Ajax 请求(post 或 get),有问题。
请检查/调试您的 Javascript 代码来修复它。