我正在转换JSP以使用ajax发布到操作,但是当请求通过时ActionForm是空白的。我不确定发生了什么,因为我应该从我读过的内容中正常工作。如果我删除了ajax页面提交就好了。 更新:调试时,data var显示表单的正确字符串。我还添加了Struts配置。
HTML:
<html:form action="/saveSomething" method="POST"> ... </html:form>
JS:
$('form[name="form_name"]').submit(function(e) {
e.preventDefault();
var url = $('form[name="form_name"]').attr('action');
var data = $('form[name="form_name"]').serialize();
var posting = $.post(url, data);
});
Struts配置:
<action name="form_name" path="/notesPage" scope="request" type="com.action.Action" validate="false" input="/jsp/notesPage.jsp">
<forward name="success" path="/jsp/notesPage.jsp" />
</action>
这是Struts 1,正如我所说,如果我删除JS表单提交方法一切正常,所以我不认为这是我的映射或与Struts有关。
答案 0 :(得分:0)
您的表单没有名称属性:
$('form[name="form_name"]')
所以你可以这样做:
$('form').submit(function(e) {
e.preventDefault();
var url = $(this).attr('action'); // get the action of current context form
var data = $(this).serialize(); // get the data of current context form
var posting = $.post(url, data);
}); // <---this is the proper closing of submit function
我希望您将此代码放在文档就绪块中。