2013-09-25 104 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