Jquery提交表單 Form.js官方插件介紹
更新時(shí)間:2012年03月01日 22:13:22 作者:
我正在研究JQuery框架,其下的插件十分豐富,使用十分簡(jiǎn)單,功能也十分強(qiáng)大
先說說常用的Form插件,支持Ajax,支持Ajax文件上傳,功能強(qiáng)大,基本滿足日常應(yīng)用。
1、最新JQuery框架軟件包下載
jquery.js壓縮包
jquery.js非壓縮包
2、Form插件下載
form.js
3、Form插件的簡(jiǎn)單入門
第一步:先增加一個(gè)表單
代碼:
<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插件的詳細(xì)使用方法及應(yīng)用實(shí)例
http://www.malsup.com/jquery/form/
============================
該插件的作者在介紹form.js時(shí),說了這樣的一句話:
引用:
Submitting a form with AJAX doesn't get any easier than this!
意思是說,用Ajax來提交表單,你不可能找到比這個(gè)更容易的了。呵呵——,是否吹水,大家用過了就知道了。
表單插件API
英文原文:http://www.malsup.com/jquery/form/#api
表單插件API提供了幾個(gè)方法,讓你輕松管理表單數(shù)據(jù)和進(jìn)行表單提交。
ajaxForm
增加所有需要的事件監(jiān)聽器,為AJAX提交表單做好準(zhǔn)備。ajaxForm不能提交表單。在document的ready函數(shù)中,使用ajaxForm來 為AJAX提交表單進(jìn)行準(zhǔn)備。ajaxForm接受0個(gè)或1個(gè)參數(shù)。這個(gè)單個(gè)的參數(shù)既可以是一個(gè)回調(diào)函數(shù),也可以是一個(gè)Options對(duì)象。
可鏈接(Chainable):可以。
實(shí)例:
代碼:
$('#myFormId').ajaxForm();
ajaxSubmit
馬上由AJAX來提交表單。大多數(shù)情況下,都是調(diào)用ajaxSubmit來對(duì)用戶提交表單進(jìn)行響應(yīng)。ajaxSubmit接受0個(gè)或1個(gè)參數(shù)。這個(gè)單個(gè)的參數(shù)既可以是一個(gè)回調(diào)函數(shù),也可以是一個(gè)Options對(duì)象。
可鏈接(Chainable):可以。
實(shí)例:
代碼:
// 綁定表單提交事件處理器
$('#myFormId').submit(function() {
// 提交表單
$(this).ajaxSubmit();
// 為了防止普通瀏覽器進(jìn)行表單提交和產(chǎn)生頁(yè)面導(dǎo)航(防止頁(yè)面刷新?)返回false
return false;
});
formSerialize
將表單串行化(或序列化)成一個(gè)查詢字符串。這個(gè)方法將返回以下格式的字符串:name1=value1&name2=value2。
可鏈接(Chainable):不能, 這個(gè)方法返回一個(gè)字符串。
實(shí)例:
代碼:
var queryString = $('#myFormId').formSerialize();
// 現(xiàn)在可以使用$.get、$.post、$.ajax等來提交數(shù)據(jù)
$.post('myscript.php', queryString);
fieldSerialize
將表單的字段元素串行化(或序列化)成一個(gè)查詢字符串。當(dāng)只有部分表單字段需要進(jìn)行串行化(或序列化)時(shí),這個(gè)就方便了。這個(gè)方法將返回以下格式的字符串:name1=value1&name2=value2。
可鏈接(Chainable):不能,這個(gè)方法返回一個(gè)字符串。
實(shí)例:
代碼:
var queryString = $('#myFormId .specialFields').fieldSerialize();
fieldValue
返回匹配插入數(shù)組中的表單元素值。從0.91版起,該方法將總是以數(shù)組的形式返回?cái)?shù)據(jù)。如果元素值被判定可能無效,則數(shù)組為空,否則它將包含一個(gè)或多于一個(gè)的元素值。
可鏈接(Chainable):不能,該方法返回?cái)?shù)組。
實(shí)例:
代碼:
// 取得密碼輸入值
var value = $('#myFormId :password').fieldValue();
alert('The password is: ' + value[0]);
resetForm
通過調(diào)用表單元素原有的DOM方法,將表單恢復(fù)到初始狀態(tài)。
可鏈接(Chainable):可以。
實(shí)例:
代碼:
$('#myFormId').resetForm();
clearForm
清除表單元素。該方法將所有的文本(text)輸入字段、密碼(password)輸入字段和文本區(qū)域(textarea)字段置空,清除任何select元素中的選定,以及將所有的單選(radio)按鈕和多選(checkbox)按鈕重置為非選定狀態(tài)。
可鏈接(Chainable):可以。
代碼:
$('#myFormId').clearForm();
clearFields
清除字段元素。只有部分表單元素需要清除時(shí)才方便使用。
可鏈接(Chainable):可以。
代碼:
$('#myFormId .specialFields').clearFields();
Options對(duì)象
ajaxForm和ajaxSubmit都支持眾多的選項(xiàng)參數(shù),這些選項(xiàng)參數(shù)可以使用一個(gè)Options對(duì)象來提供。Options只是一個(gè)JavaScript對(duì)象,它包含了如下一些屬性與值的集合:
target
指明頁(yè)面中由服務(wù)器響應(yīng)進(jìn)行更新的元素。元素的值可能被指定為一個(gè)jQuery選擇器字符串,一個(gè)jQuery對(duì)象,或者一個(gè)DOM元素。
默認(rèn)值:null。
url
指定提交表單數(shù)據(jù)的URL。
默認(rèn)值:表單的action屬性值
type
指定提交表單數(shù)據(jù)的方法(method):“GET”或“POST”。
默認(rèn)值:表單的method屬性值(如果沒有找到默認(rèn)為“GET”)。
beforeSubmit
表單提交前被調(diào)用的回調(diào)函數(shù)?!癰eforeSubmit”回調(diào)函數(shù)作為一個(gè)鉤子(hook),被提供來運(yùn)行預(yù)提交邏輯或者校驗(yàn)表單數(shù)據(jù)。如果 “beforeSubmit”回調(diào)函數(shù)返回false,那么表單將不被提交。“beforeSubmit”回調(diào)函數(shù)帶三個(gè)調(diào)用參數(shù):數(shù)組形式的表單數(shù) 據(jù),jQuery表單對(duì)象,以及傳入ajaxForm/ajaxSubmit中的Options對(duì)象。表單數(shù)組接受以下方式的數(shù)據(jù):
代碼:
[ { name: 'username', value: 'jresig' }, { name: 'password', value: 'secret' } ]
默認(rèn)值:null
success
表單成功提交后調(diào)用的回調(diào)函數(shù)。如果提供“success”回調(diào)函數(shù),當(dāng)從服務(wù)器返回響應(yīng)后它被調(diào)用。然后由dataType選項(xiàng)值決定傳回responseText還是responseXML的值。
默認(rèn)值:null
dataType
期望返回的數(shù)據(jù)類型。null、“xml”、“script”或者“json”其中之一。dataType提供一種方法,它規(guī)定了怎樣處理服務(wù)器的響應(yīng)。這個(gè)被直接地反映到j(luò)Query.httpData方法中去。下面的值被支持:
'xml':如果dataType == 'xml',將把服務(wù)器響應(yīng)作為XML來對(duì)待。同時(shí),如果“success”回調(diào)方法被指定, 將傳回responseXML值。
'json':如果dataType == 'json', 服務(wù)器響應(yīng)將被求值,并傳遞到“success”回調(diào)方法,如果它被指定的話。
'script':如果dataType == 'script', 服務(wù)器響應(yīng)將求值成純文本。
(譯注:上面一些地方鬼佬說的不清不楚,只好意譯了,希望能夠表達(dá)原意。)
默認(rèn)值:null(服務(wù)器返回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".
布爾標(biāo)志,表示數(shù)據(jù)是否必須嚴(yán)格按照語(yǔ)義順序(slower?)來進(jìn)行提交。注意:一般來說,表單已經(jīng)按照語(yǔ)義順序來進(jìn)行了串行化(或序列化),除了 type="image"的input元素。如果你的服務(wù)器有嚴(yán)格的語(yǔ)義要求,以及表單中包含有一個(gè)type="image"的input元素,就應(yīng)該將 semantic設(shè)置為true。(譯注:這一段由于無法理解,翻譯出來可能語(yǔ)不達(dá)意,但請(qǐng)達(dá)人指正。)
默認(rèn)值:false
resetForm
布爾標(biāo)志,表示如果表單提交成功是否進(jìn)行重置。
Default value: null
clearForm
布爾標(biāo)志,表示如果表單提交成功是否清除表單數(shù)據(jù)。
默認(rèn)值:null
實(shí)例:
代碼:
[/code]
// 準(zhǔn)備好Options對(duì)象
var options = {
target: '#divToUpdate',
url: 'comment.php',
success: function() {
alert('Thanks for your comment!');
} };
// 將options傳給ajaxForm
$('#myForm').ajaxForm(options);
[/code]
注意:Options對(duì)象還可以用來將值傳遞給jQuery的$.ajax方法。如果你熟悉$.ajax所支持的options,你可以利用它們來將Options對(duì)象傳遞給ajaxForm和ajaxSubmit。
1、最新JQuery框架軟件包下載
jquery.js壓縮包
jquery.js非壓縮包
2、Form插件下載
form.js
3、Form插件的簡(jiǎn)單入門
第一步:先增加一個(gè)表單
代碼:
復(fù)制代碼 代碼如下:
<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文件的包含
代碼:
復(fù)制代碼 代碼如下:
<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插件的詳細(xì)使用方法及應(yīng)用實(shí)例
http://www.malsup.com/jquery/form/
============================
該插件的作者在介紹form.js時(shí),說了這樣的一句話:
引用:
Submitting a form with AJAX doesn't get any easier than this!
意思是說,用Ajax來提交表單,你不可能找到比這個(gè)更容易的了。呵呵——,是否吹水,大家用過了就知道了。
表單插件API
英文原文:http://www.malsup.com/jquery/form/#api
表單插件API提供了幾個(gè)方法,讓你輕松管理表單數(shù)據(jù)和進(jìn)行表單提交。
ajaxForm
增加所有需要的事件監(jiān)聽器,為AJAX提交表單做好準(zhǔn)備。ajaxForm不能提交表單。在document的ready函數(shù)中,使用ajaxForm來 為AJAX提交表單進(jìn)行準(zhǔn)備。ajaxForm接受0個(gè)或1個(gè)參數(shù)。這個(gè)單個(gè)的參數(shù)既可以是一個(gè)回調(diào)函數(shù),也可以是一個(gè)Options對(duì)象。
可鏈接(Chainable):可以。
實(shí)例:
代碼:
復(fù)制代碼 代碼如下:
$('#myFormId').ajaxForm();
ajaxSubmit
馬上由AJAX來提交表單。大多數(shù)情況下,都是調(diào)用ajaxSubmit來對(duì)用戶提交表單進(jìn)行響應(yīng)。ajaxSubmit接受0個(gè)或1個(gè)參數(shù)。這個(gè)單個(gè)的參數(shù)既可以是一個(gè)回調(diào)函數(shù),也可以是一個(gè)Options對(duì)象。
可鏈接(Chainable):可以。
實(shí)例:
代碼:
復(fù)制代碼 代碼如下:
// 綁定表單提交事件處理器
$('#myFormId').submit(function() {
// 提交表單
$(this).ajaxSubmit();
// 為了防止普通瀏覽器進(jìn)行表單提交和產(chǎn)生頁(yè)面導(dǎo)航(防止頁(yè)面刷新?)返回false
return false;
});
formSerialize
將表單串行化(或序列化)成一個(gè)查詢字符串。這個(gè)方法將返回以下格式的字符串:name1=value1&name2=value2。
可鏈接(Chainable):不能, 這個(gè)方法返回一個(gè)字符串。
實(shí)例:
代碼:
復(fù)制代碼 代碼如下:
var queryString = $('#myFormId').formSerialize();
// 現(xiàn)在可以使用$.get、$.post、$.ajax等來提交數(shù)據(jù)
$.post('myscript.php', queryString);
fieldSerialize
將表單的字段元素串行化(或序列化)成一個(gè)查詢字符串。當(dāng)只有部分表單字段需要進(jìn)行串行化(或序列化)時(shí),這個(gè)就方便了。這個(gè)方法將返回以下格式的字符串:name1=value1&name2=value2。
可鏈接(Chainable):不能,這個(gè)方法返回一個(gè)字符串。
實(shí)例:
代碼:
var queryString = $('#myFormId .specialFields').fieldSerialize();
fieldValue
返回匹配插入數(shù)組中的表單元素值。從0.91版起,該方法將總是以數(shù)組的形式返回?cái)?shù)據(jù)。如果元素值被判定可能無效,則數(shù)組為空,否則它將包含一個(gè)或多于一個(gè)的元素值。
可鏈接(Chainable):不能,該方法返回?cái)?shù)組。
實(shí)例:
代碼:
復(fù)制代碼 代碼如下:
// 取得密碼輸入值
var value = $('#myFormId :password').fieldValue();
alert('The password is: ' + value[0]);
resetForm
通過調(diào)用表單元素原有的DOM方法,將表單恢復(fù)到初始狀態(tài)。
可鏈接(Chainable):可以。
實(shí)例:
代碼:
$('#myFormId').resetForm();
clearForm
清除表單元素。該方法將所有的文本(text)輸入字段、密碼(password)輸入字段和文本區(qū)域(textarea)字段置空,清除任何select元素中的選定,以及將所有的單選(radio)按鈕和多選(checkbox)按鈕重置為非選定狀態(tài)。
可鏈接(Chainable):可以。
代碼:
$('#myFormId').clearForm();
clearFields
清除字段元素。只有部分表單元素需要清除時(shí)才方便使用。
可鏈接(Chainable):可以。
代碼:
$('#myFormId .specialFields').clearFields();
Options對(duì)象
ajaxForm和ajaxSubmit都支持眾多的選項(xiàng)參數(shù),這些選項(xiàng)參數(shù)可以使用一個(gè)Options對(duì)象來提供。Options只是一個(gè)JavaScript對(duì)象,它包含了如下一些屬性與值的集合:
target
指明頁(yè)面中由服務(wù)器響應(yīng)進(jìn)行更新的元素。元素的值可能被指定為一個(gè)jQuery選擇器字符串,一個(gè)jQuery對(duì)象,或者一個(gè)DOM元素。
默認(rèn)值:null。
url
指定提交表單數(shù)據(jù)的URL。
默認(rèn)值:表單的action屬性值
type
指定提交表單數(shù)據(jù)的方法(method):“GET”或“POST”。
默認(rèn)值:表單的method屬性值(如果沒有找到默認(rèn)為“GET”)。
beforeSubmit
表單提交前被調(diào)用的回調(diào)函數(shù)?!癰eforeSubmit”回調(diào)函數(shù)作為一個(gè)鉤子(hook),被提供來運(yùn)行預(yù)提交邏輯或者校驗(yàn)表單數(shù)據(jù)。如果 “beforeSubmit”回調(diào)函數(shù)返回false,那么表單將不被提交。“beforeSubmit”回調(diào)函數(shù)帶三個(gè)調(diào)用參數(shù):數(shù)組形式的表單數(shù) 據(jù),jQuery表單對(duì)象,以及傳入ajaxForm/ajaxSubmit中的Options對(duì)象。表單數(shù)組接受以下方式的數(shù)據(jù):
代碼:
[ { name: 'username', value: 'jresig' }, { name: 'password', value: 'secret' } ]
默認(rèn)值:null
success
表單成功提交后調(diào)用的回調(diào)函數(shù)。如果提供“success”回調(diào)函數(shù),當(dāng)從服務(wù)器返回響應(yīng)后它被調(diào)用。然后由dataType選項(xiàng)值決定傳回responseText還是responseXML的值。
默認(rèn)值:null
dataType
期望返回的數(shù)據(jù)類型。null、“xml”、“script”或者“json”其中之一。dataType提供一種方法,它規(guī)定了怎樣處理服務(wù)器的響應(yīng)。這個(gè)被直接地反映到j(luò)Query.httpData方法中去。下面的值被支持:
'xml':如果dataType == 'xml',將把服務(wù)器響應(yīng)作為XML來對(duì)待。同時(shí),如果“success”回調(diào)方法被指定, 將傳回responseXML值。
'json':如果dataType == 'json', 服務(wù)器響應(yīng)將被求值,并傳遞到“success”回調(diào)方法,如果它被指定的話。
'script':如果dataType == 'script', 服務(wù)器響應(yīng)將求值成純文本。
(譯注:上面一些地方鬼佬說的不清不楚,只好意譯了,希望能夠表達(dá)原意。)
默認(rèn)值:null(服務(wù)器返回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".
布爾標(biāo)志,表示數(shù)據(jù)是否必須嚴(yán)格按照語(yǔ)義順序(slower?)來進(jìn)行提交。注意:一般來說,表單已經(jīng)按照語(yǔ)義順序來進(jìn)行了串行化(或序列化),除了 type="image"的input元素。如果你的服務(wù)器有嚴(yán)格的語(yǔ)義要求,以及表單中包含有一個(gè)type="image"的input元素,就應(yīng)該將 semantic設(shè)置為true。(譯注:這一段由于無法理解,翻譯出來可能語(yǔ)不達(dá)意,但請(qǐng)達(dá)人指正。)
默認(rèn)值:false
resetForm
布爾標(biāo)志,表示如果表單提交成功是否進(jìn)行重置。
Default value: null
clearForm
布爾標(biāo)志,表示如果表單提交成功是否清除表單數(shù)據(jù)。
默認(rèn)值:null
實(shí)例:
代碼:
[/code]
// 準(zhǔn)備好Options對(duì)象
var options = {
target: '#divToUpdate',
url: 'comment.php',
success: function() {
alert('Thanks for your comment!');
} };
// 將options傳給ajaxForm
$('#myForm').ajaxForm(options);
[/code]
注意:Options對(duì)象還可以用來將值傳遞給jQuery的$.ajax方法。如果你熟悉$.ajax所支持的options,你可以利用它們來將Options對(duì)象傳遞給ajaxForm和ajaxSubmit。
您可能感興趣的文章:
- jQuery formValidator表單驗(yàn)證插件開源了 含API幫助、源碼、示例
- jQuery 表單驗(yàn)證插件formValidation實(shí)現(xiàn)個(gè)性化錯(cuò)誤提示
- jquery form表單提交插件asp.net后臺(tái)中文解碼
- formStorage 基于jquery的一個(gè)插件(存儲(chǔ)表單中元素的狀態(tài)到本地)
- jQuery表單驗(yàn)證插件formValidator(改進(jìn)版)
- jquery表單驗(yàn)證使用插件formValidator
- jquery formValidator插件ajax驗(yàn)證 內(nèi)容不做任何修改再離開提示錯(cuò)誤的bug解決方法
- jquery validate和jquery form 插件組合實(shí)現(xiàn)驗(yàn)證表單后AJAX提交
- jQuery form插件之formDdata參數(shù)校驗(yàn)表單及驗(yàn)證后提交
相關(guān)文章
Java框架SSH結(jié)合Easyui控件實(shí)現(xiàn)省市縣三級(jí)聯(lián)動(dòng)示例解析
這篇文章主要為大家詳細(xì)介紹了Java框架SSH結(jié)合Easyui控件實(shí)現(xiàn)省市縣三級(jí)聯(lián)動(dòng)示例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-06-06輕松搞定jQuery+JSONP跨域請(qǐng)求的解決方案
了解了jsonp之后,大家應(yīng)該也都明白了,jsonp主要就是用來實(shí)現(xiàn)跨域的獲取數(shù)據(jù),今天我們就來詳細(xì)探討下如何在實(shí)際中應(yīng)用jsonp實(shí)現(xiàn)跨域2018-03-03jQuery實(shí)現(xiàn)顏色打字機(jī)的完整代碼
這篇文章主要介紹了jQuery實(shí)現(xiàn)顏色打字機(jī)的完整代碼,代碼簡(jiǎn)單易懂,非常不錯(cuò),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03Jquery+bootstrap實(shí)現(xiàn)表格行置頂置底上移下移操作詳解
這篇文章主要為大家詳細(xì)介紹了Jquery+bootstrap實(shí)現(xiàn)表格行置頂置底上移下移操作,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02EasyUI 中combotree 默認(rèn)不能選擇父節(jié)點(diǎn)的實(shí)現(xiàn)方法
下面小編就為大家?guī)硪黄狤asyUI 中combotree 默認(rèn)不能選擇父節(jié)點(diǎn)的實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-11-11Jquery通過Ajax訪問XML數(shù)據(jù)的小例子
這篇文章主要介紹了Jquery通過Ajax訪問XML數(shù)據(jù),有需要的朋友可以參考一下2013-11-11