20151223jquery學習筆記--Ajax表單提交

破玉發表於2015-12-23

傳統的表單提交, 需要多次跳轉頁面, 極大的消耗資源也缺乏良好的使用者體驗。 而這款
form.js 表單的 Ajax 提交外掛將解決這個問題。
一. 核心方法
官方網站: http://malsup.com/jquery/form/
form.js 外掛有兩個核心方法: ajaxForm()和 ajaxSubmit(),它們集合了從控制表單元素
到決定如何管理提交進行的功能。

//ajaxForm 提交方式
$('#reg').ajaxForm(function () {
alert('提交成功! ');
});

  注意: 使用 ajaxForm()方法, 會直接實現 ajax 提交。 自動阻止了預設行為, 而它提交的
預設頁面是 form 控制元件的 action 屬性的值。提交的方式是 method 屬性的值。

//ajaxSubmit()提交方式
$('#reg').submit(function () {
$(this).ajaxSubmit(function () {
alert('提交成功! ');
});
return false;
});

  注意: ajaxForm()方法, 是針對 form 直接提交的, 所以阻止了預設行為。 而 ajaxSubmit()
方法,由於是針對 submit()方法的,所以需要手動阻止預設行為。而使用了 validate.js 驗證
外掛,那麼 ajaxSubmit()比較適合我們。
二. option 引數
option 引數是一個以鍵值對傳遞的物件,可以通過這個物件,設定各種 Ajax 提交的功
能。

$('#reg').submit(function () {
$(this).ajaxSubmit({
url : 'test.php', //設定提交的 url,可覆蓋 action 屬性
target : '#box', //伺服器返回的內容存放在#box 裡
type : 'POST', //GET,POST
dataType : null, //xml,json,script,預設為 null
clearForm : true, //成功提交後,清空表單
resetForm : true, //成功提交後,重置表單
data : { //增加額外的資料提交
aaa : 'bbb',
ccc : 'ddd'.
},
beforeSubmit : function (formData, jqForm, options) {
alert(formData[0].name); //得到傳遞表單元素的 name
alert(formData[0].value); //得到傳遞表單元素的 value
alert(jqForm); //得到 form 的 jquery 物件
alert(options); //得到目前 options 設定的屬性
alert('正在提交中!!! ');
return true;
},
success : function (responseText, statusText) {
alert(responseText + statusText); //成功後回撥
},
error : function (event, errorText, errorType) { //錯誤時呼叫
alert(errorText + errorType);
},
});
return false;
});

  三. 工具方法
form.js 除了提供兩個核心方法之外,還提供了一些常用的工具方法。這些方法主要是
在提交前或後對資料或表單進行處理的。

//表單序列化
alert($('#reg').formSerialize());
//序列化某一個欄位
alert($('#reg #user').fieldSerialize());
//得到某個欄位的 value 值
alert($('#reg #user').fieldValue());
//重置表單
$('#reg').resetForm()
//清空某個欄位
$('#reg #user').clearFields();

  

 





相關文章