[置顶] Ajax模式Edit页面支持JS,操作页面表单AjaxEdit.js
2016-09-20 11:20
330 查看
/**
* Ajax模式Edit页面支持JS
*/
var submitInProgress = false;
function AjaxEdit(selector) {
this.selector = selector;
this.rules = {};
this.targetUrl = null;
this.beforeCheck = null;
this.beforeSubmit = null;
this.afterSuccess = null;
this.afterFailure = null;
}
AjaxEdit.prototype.setTargetUrl = function(url) {
this.targetUrl=url;
};
AjaxEdit.prototype.getTargetUrl = function() {
return this.targetUrl;
};
AjaxEdit.prototype.bindForm = function() {
var innerForm = $(this.selector);
var innerFormValidRules = this.rules;
var innerFormBeforeCheck = this.beforeCheck;
var innerFormBeforeSubmit = this.beforeSubmit;
var innerFormAfterSuccess = this.afterSuccess;
var innerFormAfterFailure = this.afterFailure;
//下面两个临时变量的值,用于callback中使用。
var innerXMLHttpRequest="";
var innerTextStatus="";
var ajaxEdit=this;
var validDataOpt={
label:".form_label",
showAllError:true,//所以校验一起执行
ajaxPost:false,
ignoreHidden:false,
tiptype:function(msg,o,cssctl){
//msg:提示信息;
//o:{obj:*,type:*,curform:*}, obj指向的是当前验证的表单元素(或表单对象),type指示提示的状态,值为1、2、3、4, 1:正在检测/提交数据,2:通过验证,3:验证失败,4:提示ignore状态, curform为当前form对象;
//cssctl:内置的提示信息样式控制函数,该函数需传入两个参数:显示提示信息的对象 和 当前提示的状态(既形参o中的type);
if(!o.obj.is("form")){//验证表单元素时o.obj为该表单元素,全部验证通过提交表单时o.obj为该表单对象;
if(o.type==3){
o.obj. attr("title", msg);
$(o.obj).qtip({ // Grab some elements to apply the tooltip to
hide : false,
overwrite : false,
content: {
text: msg
},
position: {
my: 'top left', // Position my top left...
at: 'bottom left', // at the bottom right of...
target:$(o.obj) // my target
},
show : {
event : false,
ready : true,
tips : false,
}
});
}else{
$(o.obj).qtip('destroy');
}
}else{//全部验证通过
layer.msg('ALL OK');
}
},
beforeCheck:function(curform){
//在表单提交执行验证之前执行的函数,curform参数是当前表单对象。
//这里明确return false的话将不会继续执行验证操作;
if(innerFormBeforeCheck!=null){
innerFormBeforeCheck();
}
},
beforeSubmit:function(curform){
//在验证成功后,表单提交前执行的函数,curform参数是当前表单对象。
//这里明确return false的话表单将不会提交;
if(innerFormBeforeSubmit!=null){
return innerFormBeforeSubmit();
}
},
callback:function(curform){//
if (submitInProgress) {
return false;
}
submitInProgress = true;
$.ajax({
// 提交数据的类型 POST GET
type : "POST",
// 提交的网址
url : ajaxEdit.getTargetUrl(),
// 提交的数据
data : innerForm.serialize(),
// 返回数据的格式
datatype : "json",
// "xml", "html", "script", "json", "jsonp", "text".
// 在请求之前调用的函数
beforeSend : function() {
layer.load();
},
// 成功返回之后调用的函数
success : function(data) {
var result = eval(data);
var messageText = "";
var success = true;
layer.closeAll('loading');
if (result.status == "200") {
messageText = '操作成功';
layer.msg(messageText);
if(innerFormAfterSuccess!=null){
innerFormAfterSuccess(result);
}
} else {
success= false;
messageText = '操作失败:' + result.statusText;
layer.alert(messageText);
if(innerFormAfterFailure!=null){
innerFormAfterFailure(innerXMLHttpRequest, innerTextStatus);
}
}
innerXMLHttpRequest = null;
innerTextStatus = null;
},
// 调用执行后调用的函数
complete : function(XMLHttpRequest, textStatus) {
//alert(XMLHttpRequest.responseText);
//alert(textStatus);
submitInProgress = false;
//调用成功后设置这两个临时变量的值,用于callback中使用。
innerXMLHttpRequest=XMLHttpRequest;
innerTextStatus = textStatus;
},
// 调用出错执行的函数
error : function(XMLHttpRequest, textStatus, errorThrown) {
layer.alert(XMLHttpRequest.responseText);
//layer.msg("Ajax提交错误");
layer.closeAll('loading');
},
clearForm : true,
});
return false;
}
};
var fromValid=$(this.selector).Validform(validDataOpt);
if(innerFormValidRules!=null) fromValid.addRule(innerFormValidRules);
};
* Ajax模式Edit页面支持JS
*/
var submitInProgress = false;
function AjaxEdit(selector) {
this.selector = selector;
this.rules = {};
this.targetUrl = null;
this.beforeCheck = null;
this.beforeSubmit = null;
this.afterSuccess = null;
this.afterFailure = null;
}
AjaxEdit.prototype.setTargetUrl = function(url) {
this.targetUrl=url;
};
AjaxEdit.prototype.getTargetUrl = function() {
return this.targetUrl;
};
AjaxEdit.prototype.bindForm = function() {
var innerForm = $(this.selector);
var innerFormValidRules = this.rules;
var innerFormBeforeCheck = this.beforeCheck;
var innerFormBeforeSubmit = this.beforeSubmit;
var innerFormAfterSuccess = this.afterSuccess;
var innerFormAfterFailure = this.afterFailure;
//下面两个临时变量的值,用于callback中使用。
var innerXMLHttpRequest="";
var innerTextStatus="";
var ajaxEdit=this;
var validDataOpt={
label:".form_label",
showAllError:true,//所以校验一起执行
ajaxPost:false,
ignoreHidden:false,
tiptype:function(msg,o,cssctl){
//msg:提示信息;
//o:{obj:*,type:*,curform:*}, obj指向的是当前验证的表单元素(或表单对象),type指示提示的状态,值为1、2、3、4, 1:正在检测/提交数据,2:通过验证,3:验证失败,4:提示ignore状态, curform为当前form对象;
//cssctl:内置的提示信息样式控制函数,该函数需传入两个参数:显示提示信息的对象 和 当前提示的状态(既形参o中的type);
if(!o.obj.is("form")){//验证表单元素时o.obj为该表单元素,全部验证通过提交表单时o.obj为该表单对象;
if(o.type==3){
o.obj. attr("title", msg);
$(o.obj).qtip({ // Grab some elements to apply the tooltip to
hide : false,
overwrite : false,
content: {
text: msg
},
position: {
my: 'top left', // Position my top left...
at: 'bottom left', // at the bottom right of...
target:$(o.obj) // my target
},
show : {
event : false,
ready : true,
tips : false,
}
});
}else{
$(o.obj).qtip('destroy');
}
}else{//全部验证通过
layer.msg('ALL OK');
}
},
beforeCheck:function(curform){
//在表单提交执行验证之前执行的函数,curform参数是当前表单对象。
//这里明确return false的话将不会继续执行验证操作;
if(innerFormBeforeCheck!=null){
innerFormBeforeCheck();
}
},
beforeSubmit:function(curform){
//在验证成功后,表单提交前执行的函数,curform参数是当前表单对象。
//这里明确return false的话表单将不会提交;
if(innerFormBeforeSubmit!=null){
return innerFormBeforeSubmit();
}
},
callback:function(curform){//
if (submitInProgress) {
return false;
}
submitInProgress = true;
$.ajax({
// 提交数据的类型 POST GET
type : "POST",
// 提交的网址
url : ajaxEdit.getTargetUrl(),
// 提交的数据
data : innerForm.serialize(),
// 返回数据的格式
datatype : "json",
// "xml", "html", "script", "json", "jsonp", "text".
// 在请求之前调用的函数
beforeSend : function() {
layer.load();
},
// 成功返回之后调用的函数
success : function(data) {
var result = eval(data);
var messageText = "";
var success = true;
layer.closeAll('loading');
if (result.status == "200") {
messageText = '操作成功';
layer.msg(messageText);
if(innerFormAfterSuccess!=null){
innerFormAfterSuccess(result);
}
} else {
success= false;
messageText = '操作失败:' + result.statusText;
layer.alert(messageText);
if(innerFormAfterFailure!=null){
innerFormAfterFailure(innerXMLHttpRequest, innerTextStatus);
}
}
innerXMLHttpRequest = null;
innerTextStatus = null;
},
// 调用执行后调用的函数
complete : function(XMLHttpRequest, textStatus) {
//alert(XMLHttpRequest.responseText);
//alert(textStatus);
submitInProgress = false;
//调用成功后设置这两个临时变量的值,用于callback中使用。
innerXMLHttpRequest=XMLHttpRequest;
innerTextStatus = textStatus;
},
// 调用出错执行的函数
error : function(XMLHttpRequest, textStatus, errorThrown) {
layer.alert(XMLHttpRequest.responseText);
//layer.msg("Ajax提交错误");
layer.closeAll('loading');
},
clearForm : true,
});
return false;
}
};
var fromValid=$(this.selector).Validform(validDataOpt);
if(innerFormValidRules!=null) fromValid.addRule(innerFormValidRules);
};
相关文章推荐
- Ajax模式List页面支持JS,JS支持页面分页的AjaxList.js
- js中对arry数组的各种操作小结 瀑布流AJAX无刷新加载数据列表--当页面滚动到Id时再继续加载数据 web前端url传递值 js加密解密 HTML中让表单input等文本框为只读不可编辑的方法 js监听用户的键盘敲击事件,兼容各大主流浏览器 HTML特殊字符
- SharePoint js操作原生的New/Edit表单
- jQuery.form.js是一个form插件,支持ajax表单提交和ajax文件上传。
- ASP.NET后台输出js大全,页面顶部、form表单中前面与后面、和UpdatePanel(ScriptManager、AJAX)输出JS
- 原生JS Ajax操作,登录页面
- js_ajax模拟form表单提交_多文件上传_支持单个删除
- JS表单验证插件(支持Ajax验证)
- JS实现支持Ajax验证的表单插件
- 一段用于编辑页面表单并使用ajax提交与无刷新获取的js段落
- 自己编写的支持Ajax验证的JS表单验证插件
- ThinkPHP 表单提交操作成功后执行JS操作如何刷新父页面或关闭当前页等操作
- JavaScript之Ajax-6 Ajax的增强操作(jQuery对Ajax的支持、表单操作)
- Laravel 中使用 Vue.js 实现基于 Ajax 的表单提交错误验证操作
- JS实现支持Ajax验证的表单插件
- 第一周,后台取数据做成表单highchart图到freemarker页面,ajax操作
- 自己编写的支持Ajax验证的JS表单验证插件
- [置顶] JS操作SELECT表单大全,赋默认值,取值,增,删
- [置顶] JS禁止用户对页面文档进行操作
- js操作cookie;js的setInterval;C#获取指定页面的内容;Ajax.dll的使用