jQuery.Form.js 是一個用於使用jQuery異步提交表單的插件,它使用方法簡單,支持同步和異步兩種方式提交。
第一步:引入jQuery與jQuery.Form.js
1 <script src="jQuery.1.8.3.js" type="text/javascript"></script> 2 <script src="jQuery.Form.js" type="text/javascript"></script>
第二步:HTML示例代碼
<div id="div1"> <form id="form1" method="get" action="#"> <p> <label for="name"> 姓名: </label> <input type="text" name="name" /> </p> <p> <label for="age"> 姓名: </label> <input type="text" name="age" /> </p> <p> <label for="country"> 國家: </label> <input type="checkbox" name="country" value="1" />蜀國 <input type="checkbox" name="country" value="2" />魏國 <input type="checkbox" name="country" value="3" />吳國 </p> <p><input type="submit" value="確認" /></p> </form> </div> <div id="div2"></div>
第三步:JS代碼
$(function () { $(":submit").click(function () { var options = { url: "indexAjax.aspx", target: "#div2", success: function (data) { alert(data); } }; $("#form1").ajaxForm(options); }) })
第四步:后台處理代碼
string strName = Request["name"]; string strAge = Request["age"]; string strCountry = Request["country"]; Response.Clear(); Response.Write("姓名:" + strName + "; 年齡:" + strAge + "; 國家:" + strCountry); Response.End();
一、jQuery.Form.js 配置選項options
選項 | 說明 |
url | 表單提交數據的地址 |
type | form提交的方式(method:post/get) |
target | 服務器返回的響應數據顯示在元素(Id)號 |
beforeSerialize: function($form, options) | 表單數據被序列化之前執行的回調函數,如果在內部return false將終止序列化和提交。 |
beforeSubmit: function(arr, $form, options) | 表單數據被序列化成arr數組,並且在提交前觸發的回調函數。 |
error | 提交失敗執行的回調函數 |
success | 提交成功后執行的回調函數 |
data | 除了表單數據外,還需要額外提交到服務器的數據 |
iframe | 如果有<input type="file">是否應該使用iframe來上傳文件(對舊版本瀏覽器而言) |
iframeSrc | 為<iframe>元素設定src屬性值 |
iframeTarget | 如果你想用自己的iframe來上傳文件,可以將Id傳給這個屬性 |
dataType | 期望服務器返回數據類型 |
clearForm | 提交成功后是否清空表單中的字段值 |
restForm | 提交成功后是否重置表單中的字段值,即恢復到頁面加載時的狀態 |
timeout | 設置請求時間,超過該時間后,自動退出請求,單位(毫秒) |
forceSync | |
semantic | |
uploadProgress |
二、可操作函數
函數 | 說明 |
ajaxForm | 提交表單 與ajaxSubmit的區別在於是否觸發瀏覽器的提交。 |
ajaxSubmit | 提交表單 |
formSerialize | 序列化表單 |
fieldSerialize | 序列化字段 |
fieldValue | 返回某個input的字段值 |
resetForm | 重置表單為打開頁時的狀態 |
clearForm | 清空表單的所有值 |
clearFields | 清空某個字段值 |
對於之前的表單,我們輸入值,然后序列化整個表單看看
var str = $("#form1").formSerialize(options); alert(str);
序列化之后彈出的表單內容如下:
當然你也可以序列化單一個字段:
var str = $("input[name=name]").fieldSerialize(options);
返回某個字段值:
var str = $('#form1 input[name=name]').fieldValue();