-1

我正在将 JSP 转换为使用 ajax 发布到操作,但是当请求通过时 ActionForm 是空白的。我不确定发生了什么,因为从我阅读的内容来看,这应该可以正常工作。如果我删除 ajax 页面提交就好了。更新:调试时,数据 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 有任何关系。

4

1 回答 1

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

我希望您将此代码放入文档就绪块中。

于 2014-05-27T18:20:20.537 回答