jQuery的input 失去焦点之后,不能再获取到焦点
今天写了一个字段唯一性校验功能,验证设备仪器编号唯一,当输入编号之后 ,点击其他,失去焦点后,后台验证唯一,有过此编号,就给出提示,重新填写。
当使用ie时候,获取焦点正常 ,但是使用火狐就获取不到焦点了。
解决方法 :将$("#appNumId").focus()改为如下代码firefox即可识别:
window.setTimeout (function(){ document.getElementById ('appNumId'). select();},0 );
具体代码如下:
前台代码: 这两行代码在firefox 下不好用:
//用于资产编号和设备编号的唯一性校验 $(function(){ $("#assetNumId").blur(function(){ var assetNum = $("#assetNumId").val(); //AJAX去后台查询数据库中有这个资产编号吗 ajaxPost("/apparatus/assetNumCheck",{"assetNum":assetNum},function(data,status){ if(data.message =="true"){ alert("该资产编号已存在,请重新填写"); $("#assetNumId").val(""); $("#assertNumId").focus(); } }); }); $("#appNumId").blur(function(){ var appNum = $("#appNumId").val(); ajaxPost("/apparatus/appNumCheck",{"appNum":appNum},function(data,status){ if(data.message =="true"){ alert("该设备编号已存在,请重新填写"); $("#appNumId").val(""); $("#appNumId").focus(); } }); }) })
更换获取焦点方式后firefox即可使用:
//用于资产编号和设备编号的唯一性校验 $(function(){ $("#assetNumId").blur(function(){ var assetNum = $("#assetNumId").val(); //AJAX去后台查询数据库中有这个资产编号吗 ajaxPost("/apparatus/assetNumCheck",{"assetNum":assetNum},function(data,status){ if(data.message =="true"){ alert("该资产编号已存在,请重新填写"); $("#assetNumId").val(""); window.setTimeout (function(){ document.getElementById ('assetNumId'). select();},0 ); } }); }); $("#appNumId").blur(function(){ var appNum = $("#appNumId").val(); ajaxPost("/apparatus/appNumCheck",{"appNum":appNum},function(data,status){ if(data.message =="true"){ alert("该设备编号已存在,请重新填写"); $("#appNumId").val(""); window.setTimeout (function(){ document.getElementById ('appNumId'). select();},0 ); } }); }) })
然后ok!,ie、火狐均兼容