在jquery中,可以利用ajaxForm()和ajaxSubmit()兩個(gè)方法來使用“jquery form”,“jquery form”是一個(gè)表單異步提交的插件,用于提交表單并設(shè)置表單提交的參數(shù),能夠在表單提交前對(duì)表單數(shù)據(jù)進(jìn)行校驗(yàn)和處理和表單提交后的函數(shù)調(diào)用。
本教程操作環(huán)境:windows10系統(tǒng)、jquery3.2.1版本、Dell G3電腦。
jquery form怎么用
jquery form是一個(gè)表單異步提交的插件,可以很容易提交表單,設(shè)置表單提交的參數(shù),并在表單提交前對(duì)表單數(shù)據(jù)進(jìn)行校驗(yàn)和處理和表單提交后的函數(shù)調(diào)用。
這個(gè)插件有兩個(gè)主要方法:
ajaxForm() 和 ajaxSubmit(),
它們集合了從控制表單元素到?jīng)Q定如何管理提交進(jìn)程的功能;
他們都可以接受0個(gè)或一個(gè)參數(shù),參數(shù)可以為一個(gè)函數(shù)或者一個(gè)JS對(duì)象,類似json格式;
ajaxForm()不能提交表單,只是為表單提交做準(zhǔn)備:
1:傳入函數(shù)
$("#form1").submit(function () { $('#form1').ajaxForm(function () { alert("提交成功2") }) })
但是雖然我看了很多博客都是這樣寫,我實(shí)際代碼運(yùn)行之后發(fā)現(xiàn),“提交成功2”并沒有打印,也就是函數(shù)沒有進(jìn)去,
而且提交后,頁面會(huì)跳轉(zhuǎn)到action的地址,也就是說,這個(gè)方法不能實(shí)現(xiàn)表單的異步提交,只是為表單提交做準(zhǔn)備,但傳入一個(gè)函數(shù)的方式不適合這個(gè)方法,因?yàn)闆]有進(jìn)去,不知道是不是我寫的有問題。但是如果傳入一個(gè)option是對(duì)象,就能生效。
var options = { url: "/day09/jqueryFormServlet", //提交地址:默認(rèn)是form的action,如果申明,則會(huì)覆蓋 type: "post", //默認(rèn)是form的method(get or post),如果申明,則會(huì)覆蓋 beforeSubmit: beforeCheck, //提交前的回調(diào)函數(shù) success: successfun, //提交成功后的回調(diào)函數(shù) target: "#output", //把服務(wù)器返回的內(nèi)容放入id為output的元素中 dataType: "json", //html(默認(rèn)), xml, script, json...接受服務(wù)端返回的類型 clearForm: true, //成功提交后,是否清除所有表單元素的值 resetForm: true, //成功提交后,是否重置所有表單元素的值 timeout: 3000 //限制請(qǐng)求的時(shí)間,當(dāng)請(qǐng)求大于3秒后,跳出請(qǐng)求 };
2:傳入一個(gè)js對(duì)象
$('#form1').ajaxForm(options)
ajaxSubmit()方法:實(shí)現(xiàn)表單的異步提交
$("#form1").submit(function () { $('#form1').ajaxSubmit(function () { alert("提交成功2") }) return false; })
這里必須返回false,不然表單會(huì)提交兩次,因?yàn)楫惒教峤灰淮危J(rèn)提交一次;
$('#form1').ajaxSubmit(options)
但如果傳入options對(duì)象則只會(huì)提交一次
視頻教程推薦:jQuery視頻教程