傳統的表單提交, 需要多次跳轉頁面, 極大的消耗資源也缺乏良好的使用者體驗。 而這款
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();