2013-09-25 72 views
0

我有一个包含许多数据字段的表单。表单上有一个按钮,可将您重定向到另一个页面以填写更多信息。完成填写更多信息后,您将导航回原始表单。我希望能够发布部分填写的表单,而不必实际提交,因此我可以将其存储在会话中。没有提交的表单数据

是否可以发布表单数据而不需要通过表单上指定的动作url?

+2

我不明白之间的“邮报”和“提交”的区别。你究竟做了什么,你想做什么? –

回答

2

您可以点击事件添加到您的链接或按钮(这需要用户在表单/部件的第二部分),并且可以使用AJAX动作方法发布形式,当然也可以将它保存。

你的js代码应该是这样的

$(function(){ 

    $("#idOfNextLinkOrButton").click(function(e){ 

    e.preventDefault(); 
    var _form=$(this).closest("form"); //Get the form somehave 

    $.post("@Url.Action("TempSave","Home")",_form.serialize(),function(result){ 
     //do something with the result 
    }); 

    }); 

}); 
+0

+1但考虑到行为,如果Ajax不是在浏览器中使用(关闭JavaScript)。拥有优雅的用户体验,即使它只是显示一个页面,指出JavaScript是必需的。 –

+0

@Shyju哇,这实际上很自我解释。应该明白这一点。谢谢您的帮助! – Will

+0

@Will欢迎你!很高兴我能帮上忙 :) – Shyju

0

您可以将其发布到相同的URL,但例如包含隐藏字段SurveyCompleted=false,当您位于最后一页时,您将其设置为true。只有当true时,输入持续,否则你只是将它保存在你的会话中。

0

您可以张贴到一些按钮的点击使用Javascript Ajax的一些其他网址/提交表单。

注意:请确保当您单击窗体中的按钮时,默认行为是提交,但您可以阻止。

jQuery中,我们不喜欢

$('#btnSend').click(function(e){ 
    e.preventDefault(); 
    $.post('someurl',data,function(result){}); 
}); 

的数据参数可以是

data=$('#yourform').serialize(); // sends the whole form data 

or 
data=JSON.stingify(someJavaScriptObject); // you can set and send anydata