jQuery Form插件是一個優秀的Ajax表單插件,可以非常容易地、無侵入地升級HTML表單以支持Ajax。jQuery Form有兩個核心方法 -- ajaxForm() 和 ajaxSubmit(), 它們集合了從控制表單元素到決定如何管理提交進程的功能。另外,插件還包括其他的一些方法: formToArray()、formSerialize()、fieldSerialize()、fieldValue()、clearForm()、clearFields() 和 resetForm()等。
下載地址: http://malsup.com/jquery/form/#download
核心方法 -- ajaxForm() 和 ajaxSubmit()
$('#myForm').ajaxForm(function() { $('#output1').html("提交成功!歡迎下次再來!").show(); }); $('#myForm2').submit(function() { $(this).ajaxSubmit(function() { $('#output2').html("提交成功!歡迎下次再來!").show(); }); return false; //阻止表單默認提交 }); 通過Form插件的兩個核心方法,都可以在不修改表單的HTML代碼結構的情況下,輕易地將表單的提交方式升級為Ajax提交方式ajaxForm() 和 ajaxSubmit() 都能接受0個或1個參數,當為單個參數時,該參數既可以是一個回調函數,也可以是一個options對象,上面的例子就是回調函數,下面介紹options對象,使得它們對表單擁有更多的控制權
var options = { target: '#output', //把服務器返回的內容放入id為output的元素中 beforeSubmit: showRequest, //提交前的回調函數 success: showResponse, //提交后的回調函數 //url: url, //默認是form的action, 如果申明,則會覆蓋 //type: type, //默認是form的method(get or post),如果申明,則會覆蓋 //dataType: null, //html(默認), xml, script, json...接受服務端返回的類型 //clearForm: true, //成功提交后,清除所有表單元素的值 //resetForm: true, //成功提交后,重置所有表單元素的值 timeout: 3000 //限制請求的時間,當請求大于3秒后,跳出請求 } function showRequest(formData, jqForm, options){ //formData: 數組對象,提交表單時,Form插件會以Ajax方式自動提交這些數據,格式如:[{name:user,value:val },{name:pwd,value:pwd}] //jqForm: jQuery對象,封裝了表單的元素 //options: options對象 var queryString = $.param(formData); //name=1&address=2 var formElement = jqForm[0]; //將jqForm轉換為DOM對象 var address = formElement.address.value; //訪問jqForm的DOM元素 return true; //只要不返回false,表單都會提交,在這里可以對表單元素進行驗證 }; function showResponse(responseText, statusText){ //dataType=xml var name = $('name', responseXML).text(); var address = $('address', responseXML).text(); $("#xmlout").html(name + " " + address); //dataType=json $("#jsonout").html(data.name + " " + data.address); }; $("#myForm").ajaxForm(options); $("#myForm2").submit(funtion(){ $(this).ajaxSubmit(options); return false; //阻止表單默認提交 });
新聞熱點
疑難解答
圖片精選