使用ajax将表单发送到服务器不能正常工作struts2

时间:2014-02-20 20:26:08

标签: jquery ajax struts2

我是struts 2的新手,我想通过ajax发送表单数据,我能够发送数据并且服务器响应正确,但当响应来到页面时自动转到另一页并显示响应。

var copyEntryFormsubmit = {
            dataType :'json',
            success : function(json) {
                var v = json.parse(json);

            }
        };

        $("#copyEntryForm").submit( function() {
            $(this).ajax(copyEntryFormsubmit);

        });
    <s:form action="copyEventSubmit.action" id="copyEntryForm">
<s:submit key="submit" id="submitcss"></s:submit>

2 个答案:

答案 0 :(得分:0)

我不熟悉Struts2,但看起来你需要在jQuery中使用preventDefault()。提交时的监听器应如下所示:

$("#copyEntryForm").submit( function(e) {
    e.preventDefault();
    //code here
});

e是传递的事件。 preventDefault()会阻止默认行为,在这种情况下是提交到action页面的表单。有关preventDefault()的更多信息,请参阅jQuery documentation

答案 1 :(得分:0)

更改struts标签,如下所示

<s:submit type="button" id="submitcss" />

在Mathew提到的Javascript中使用e.preventDefault()

$("#submitcss").click(function(e){
    e.preventDefault();   
     $(this).ajax(copyEntryFormsubmit);
});

有关以下详细信息,请参阅以下链接。

How to use struts2 submit tag as button without submitting the form?

<强>更新

您可以像这样更改点击功能并尝试

$("#submitcss").click(function(e){
    e.preventDefault();    
    $.ajax({
    dataType :'json',
            success : function(json) {
                var v = json.parse(json);    
            }
   });    
});