處理表單帖子返回json響應的最佳做法是什麼?我們正在嘗試在我們網站的移動版本中重新使用一些代碼,該代碼返回JSON,我不確定處理javascript的最佳方式。我想填充一個對話框。我真的必須在form標籤上將data-ajax設置爲false,並調用$ .post嗎?jQuery手機和JSON帖子回覆
感謝, 羅布
處理表單帖子返回json響應的最佳做法是什麼?我們正在嘗試在我們網站的移動版本中重新使用一些代碼,該代碼返回JSON,我不確定處理javascript的最佳方式。我想填充一個對話框。我真的必須在form標籤上將data-ajax設置爲false,並調用$ .post嗎?jQuery手機和JSON帖子回覆
感謝, 羅布
請問這個帖子幫你?
http://www.giantflyingsaucer.com/blog/?p=2574
也許你能解釋一下多一點點,你是什麼意思與「我真的有數據阿賈克斯設置爲false表單標籤」?如果你想保留AJAX的方式,我想你必須處理你的表單POST,例如$ .post或$ .ajax(參見示例)
是的,爲了處理jQuery Mobile中的表單提交,您必須添加data-ajax="false"
的表單標籤,所以jQuery Mobile框架將不會爲您處理它。然後,您可以設置自己的處理程序submit
事件:
//add event handler to your form's submit event
$('form').on('submit', function (e) {
var $this = $(this);
//prevent the form from submitting normally
e.preventDefault();
//show the default loading message while the $.post request is sent
$.mobile.showPageLoadingMsg();
//send $.post request to server, `$this.serialize()` adds the form data to the request
$.post($this.attr('action'), $this.serialize(), function (response) {
//you can now access the response from the server via the `response` variable
$.mobile.hidePageLoadingMsg();
}, 'json');//you can set the response data-type as well
});
下面是$.post()
的文檔:http://api.jquery.com/jquery.post/
您:.on()
來代替貶值.bind()
功能的使用可能需要爲Jasper的示例添加一個.error()處理程序,否則如果在jquery或服務器端存在錯誤,則加載消息將保持在最前,直到用戶刷新頁面,這可能會導致al他輸入的數據。
//add event handler to your form's submit event
$('form').on('submit', function (e) {
var $this = $(this);
//prevent the form from submitting normally
e.preventDefault();
//show the default loading message while the $.post request is sent
$.mobile.showPageLoadingMsg();
//send $.post request to server, `$this.serialize()` adds the form data to the request
$.post($this.attr('action'), $this.serialize(), function (response) {
//you can now access the response from the server via the `response` variable
$.mobile.hidePageLoadingMsg();
}, 'json') //you can set the response data-type as well
.error(function(e) {
$.mobile.showPageLoadingMsg();
console.log('my_function_name, ' + e.responseText);
});
});