input失去焦点验证格式_关于formValidator-4.1.0 ajaxValidator校验 当input失去焦点时候不弹出提示框解决方法(因为当点击“返回”按钮)的时候也触发失去焦点事件 ...

关于formValidator-4.1.0 ajaxValidator校验 当input失去焦点时候不弹出提示框解决方法(因为当点击“返回”按钮)的时候也触发失去焦点事件,

其实要的效果是当点击返回按钮的时候不弹出提示框 ,但实际点击“返回”也是失去焦点所以也会弹出提示款,如图:

0_1311843525ICjB.gif

但是如果不是ajax的其它校验是可以的(就是失去焦点的时候不会弹出提示款),所以和同事看了源码,发现

//发送ajax请求

$.ajax(

{

type : setting.type,

url : ls_url,

cache : setting.cache,

data : setting.data,

async : setting.async,

timeout : setting.timeout,

dataType : setting.dataType,

success : function(data, textStatus, jqXHR){

var lb_ret,ls_status,ls_msg,lb_isValid = false;

$.formValidator.dealAjaxRequestCount(validatorGroup,-1);

//根据业务判断设置显示信息

lb_ret = setting.success(data, textStatus, jqXHR);

if((typeof lb_ret)=="string")

{

ls_status = "onError";

ls_msg = lb_ret;

}

else if(lb_ret){

lb_isValid = true;

ls_status = "onCorrect";

ls_msg = settings[0].onCorrect;

}else{

ls_status = "onError";

ls_msg = $.formValidator.getStatusText(elem,setting.onError);

//alert(ls_msg) //这个是ajax失去焦点的时候弹出的后台验证失败的框

}

setting.isValid = lb_isValid;

$.formValidator.setTipState(elem,ls_status,ls_msg);

//提交的时候触发了ajax校验,等ajax校验完成,无条件重新校验

if(returnObj.initConfig.status=="sumbitingWithAjax" && returnObj.initConfig.ajaxCountSubmit == 0)

{

if (initConfig.formID != "") {

$('#' + initConfig.formID).trigger('submit');

}

}

},

complete : function(jqXHR, textStatus){

if(setting.buttons && setting.buttons.length > 0){setting.buttons.attr({"disabled":false})};

setting.complete(jqXHR, textStatus);

},

beforeSend : function(jqXHR, configs){

//本控件如果正在校验,就中断上次

if (this.lastXMLHttpRequest) {this.lastXMLHttpRequest.abort()};

this.lastXMLHttpRequest = jqXHR;

//再服务器没有返回数据之前,先回调提交按钮

if(setting.buttons && setting.buttons.length > 0){setting.buttons.attr({"disabled":true})};

var lb_ret = setting.beforeSend(jqXHR,configs);

var isValid = false;

//无论是否成功都当做失败处理

setting.isValid = false;

if((typeof lb_ret)=="boolean" && lb_ret)

{

isValid = true;

$.formValidator.setTipState(elem,"onLoad",settings[returnObj.ajax].onWait);

}else

{

isValid = false;

$.formValidator.setTipState(elem,"onError",lb_ret);

}

setting.lastValid = "-1";

if(isValid){$.formValidator.dealAjaxRequestCount(validatorGroup,1);}

return isValid;

},

error : function(jqXHR, textStatus, errorThrown){

$.formValidator.dealAjaxRequestCount(validatorGroup,-1);

$.formValidator.setTipState(elem,"onError",$.formValidator.getStatusText(elem,setting.onError));

setting.isValid = false;

setting.error(jqXHR, textStatus, errorThrown);

},

processData : setting.processData

});

将“//alert(ls_msg) //这个是ajax失去焦点的时候弹出的后台验证失败的框”这句注释掉就OK了,就是这一行在搞鬼!所以注释掉完事大吉!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值