[JQuery架構應用]:form.js官方外掛程式介紹
Form外掛程式,支援Ajax,支援Ajax檔案上傳,功能強大,基本滿足日常應用。
1、JQuery架構軟體包下載
| 檔案: |
jquery.rar |
| 大小: |
29KB |
| 下載: |
下載 |
|
2、Form外掛程式下載
| 檔案: |
jquery.form.rar |
| 大小: |
7KB |
| 下載: |
下載 |
|
3、Form外掛程式的簡單入門
第一步:先增加一個表單
<form id="myForm" action="comment.php" method="post"> Name: <input type="text" name="name" /> Comment: <textarea name="comment"></textarea> <input type="submit" value="Submit Comment" /> </form>
|
第二步:jquery.js和form.js檔案的包含
<head> <script type="text/javascript" src="path/to/jquery.js"></script> <script type="text/javascript" src="path/to/form.js"></script> <script type="text/javascript"> // wait for the DOM to be loaded $(document).ready(function() { // bind 'myForm' and provide a simple callback function $('#myForm').ajaxForm(function() { alert("Thank you for your comment!"); }); }); </script> </head>
|
3、Form外掛程式的詳細使用方法及應用執行個體
http://www.malsup.com/jquery/form/
============================
該外掛程式的作者在介紹form.js時,說了這樣的一句話:
Submitting a form with AJAX doesn't get any easier than this!
|
表單外掛程式API
英文原文:http://www.malsup.com/jquery/form/#api
表單外掛程式API提供了幾個方法,讓你輕鬆管理表單資料和進行表單提交。
ajaxForm
增加所有需要的事件監聽器,為AJAX提交表單做好準備。ajaxForm不能提交表單。在document的ready函數中,使用ajaxForm來為AJAX提交表單進行準備。ajaxForm接受0個或1個參數。這個單個的參數既可以是一個回呼函數,也可以是一個Options對象。
可連結(Chainable):可以。
執行個體:
$('#myFormId').ajaxForm();
ajaxSubmit
馬上由AJAX來提交表單。大多數情況下,都是調用ajaxSubmit來對使用者提交表單進行響應。ajaxSubmit接受0個或1個參數。這個單個的參數既可以是一個回呼函數,也可以是一個Options對象。
可連結(Chainable):可以。
執行個體:
// 綁定表單提交事件處理器
$('#myFormId').submit(function() {
// 提交表單
$(this).ajaxSubmit();
// 為了防止普通瀏覽器進行表單提交和產生頁面導航(防止頁面重新整理?)返回false
return false;
});
formSerialize
將表單序列化(或序列化)成一個查詢字串。這個方法將返回以下格式的字串:name1=value1&name2=value2。
可連結(Chainable):不能, 這個方法返回一個字串。
執行個體:
var queryString = $('#myFormId').formSerialize();
// 現在可以使用$.get、$.post、$.ajax等來提交資料
$.post('myscript.php', queryString);
fieldSerialize
將表單的欄位元素序列化(或序列化)成一個查詢字串。當只有部分表單欄位需要進行序列化(或序列化)時,這個就方便了。這個方法將返回以下格式的字串:name1=value1&name2=value2。
可連結(Chainable):不能,這個方法返回一個字串。
執行個體:
var queryString = $('#myFormId .specialFields').fieldSerialize();
fieldValue
返回匹配插入數組中的表單元素值。從0.91版起,該方法將總是以數組的形式返回資料。如果元素值被判定可能無效,則數組為空白,否則它將包含一個或多於一個的元素值。
可連結(Chainable):不能,該方法返回數組。
執行個體:
// 取得密碼輸入值
var value = $('#myFormId :password').fieldValue();
alert('The password is: ' + value[0]);
resetForm
通過調用表單元素原有的DOM方法,將表單恢複到初始狀態。
可連結(Chainable):可以。
執行個體:
$('#myFormId').resetForm();
clearForm
清除表單元素。該方法將所有的文本(text)輸入欄位、密碼(password)輸入欄位和文本地區(textarea)欄位置空,清除任何select元素中的選定,以及將所有的單選(radio)按鈕和多選(checkbox)按鈕重設為非選定狀態。
可連結(Chainable):可以。
$('#myFormId').clearForm();
clearFields
清除欄位元素。只有部分表單元素需要清除時才方便使用。
可連結(Chainable):可以。
$('#myFormId .specialFields').clearFields();
Options對象
ajaxForm和ajaxSubmit都支援眾多的選項參數,這些選項參數可以使用一個Options對象來提供。Options只是一個JavaScript對象,它包含了如下一些屬性與值的集合:
target
指明頁面中由伺服器響應進行更新的元素。元素的值可能被指定為一個jQuery選取器字串,一個jQuery對象,或者一個DOM元素。
預設值:null。
url
指定提交表單資料的URL。
預設值:表單的action屬性值
type
指定提交表單資料的方法(method):“GET”或“POST”。
預設值:表單的method屬性值(如果沒有找到預設為“GET”)。
beforeSubmit
表單提交前被調用的回呼函數。“beforeSubmit”回呼函數作為一個鉤子(hook),被提供來運行預提交邏輯或者校正表單資料。如果“beforeSubmit”回呼函數返回false,那麼表單將不被提交。“beforeSubmit”回呼函數帶三個調用參數:數組形式的表單資料,jQuery表單對象,以及傳入ajaxForm/ajaxSubmit中的Options對象。表單數組接受以下方式的資料:
[ { name: 'username', value: 'jresig' }, { name: 'password', value: 'secret' } ]
預設值:null
success
表單成功提交後調用的回呼函數。如果提供“success”回呼函數,當從伺服器返迴響應後它被調用。然後由dataType選項值決定傳回responseText還是responseXML的值。
預設值:null
dataType
期望返回的資料類型。null、“xml”、“script”或者“json”其中之一。dataType提供一種方法,它規定了怎樣處理伺服器的響應。這個被直接地反映到jQuery.httpData方法中去。下面的值被支援:
'xml':如果dataType == 'xml',將把伺服器響應作為XML來對待。同時,如果“success”回調方法被指定, 將傳回responseXML值。
'json':如果dataType == 'json', 伺服器響應將被求值,並傳遞到“success”回調方法,如果它被指定的話。
'script':如果dataType == 'script', 伺服器響應將求值成純文字。
預設值:null(伺服器返回responseText值)
semantic
Boolean flag indicating whether data must be submitted in strict semantic order (slower). Note that the normal form serialization is done in semantic order with the exception of input elements of type="image". You should only set the semantic option to true
if your server has strict semantic requirements and your form contains an input element of type="image".
布爾標誌,表示資料是否必須嚴格按照語義順序(slower?)來進行提交。注意:一般來說,表單已經按照語義順序來進行了序列化(或序列化),除了type="image"的input元素。如果你的伺服器有嚴格的語義要求,以及表單中包含有一個type="image"的input元素,就應該將semantic設定為true。(譯註:這一段由於無法理解,翻譯出來可能語不達意,但請達人指正。)
預設值:false
resetForm
布爾標誌,表示如果表單提交成功是否進行重設。
Default value: null
clearForm
布爾標誌,表示如果表單提交成功是否清除表單資料。
預設值:null
執行個體:
// 準備好Options對象
var options = {
target: '#divToUpdate',
url: 'comment.php',
success: function() {
alert('Thanks for your comment!');
} };
// 將options傳給ajaxForm
$('#myForm').ajaxForm(options);
注意:Options對象還可以用來將值傳遞給jQuery的$.ajax方法。如果你熟悉$.ajax所支援的options,你可以利用它們來將Options對象傳遞給ajaxForm和ajaxSubmit。