jquery form
必须先引用jquery.js再引用jquery.form.js
项目中设计是在jquery validation在ajax验证成功后执行form数据提交
...
//ajax校验完成时回调
//function(status, form, json, options){}
onAjaxFormComplete : function(errorInForm, form, json, options) {
//如果ajax校验成功,则进行业务处理
if (errorInForm) {
$("form", $dialog).ajaxSubmit({
success : function(html) {
obj = html;
isJsonArray =
typeof(obj) == "object" &&
Object.prototype.toString.call(obj).toLowerCase() == "[object array]";
if (isJsonArray) {
//jquery noty插件
$("#content").noties(obj, 3000);
$("div.ui-pg-div").attr("style", "display:ture");
if(eval(obj)[0].type=='success'){
$dialog.dialog("close");
}
//不刷新页面,防止浏览器一般提交后会进行跳转或刷新
return false
}
}
});
jquery form 两个核心方法ajaxForm()和ajaxSubmit
ajaxform()增加所有需要的事件监听器,为ajax提交表单做好准备。ajaxform不能提交表单,仅仅用来准备,可以传入options对象。
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值)
sample:
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秒后,跳出请求
}
–2015/12/15