您的位置:首页 > Web前端 > JQuery

jQuery的初始加载函数和html事件加载顺序

2017-11-06 16:52 323 查看
最近遇到一个问题,我在JSP里的一个input标签里面定义了一个onblur事件,然后该事件绑定的函数check()写在了js里。奇怪的是,当我把这个函数写在jQuery的初始加载函数里面之后,这个函数失效了。

代码如下:

<input type="text" name="phone" value="" id="phone" onblur="validatemobile(this)">
$(function(){
function validatemobile(obj) {
var mobile = $(obj).val();
if (mobile.length == 0) {
alert('请输入手机号码!');
document.form1.mobile.focus();
return false;
}
if (mobile.length != 11) {
alert('请输入有效的手机号码!');
$(obj).val("");
document.form1.mobile.focus();
return false;
}

var myreg = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+\d{8})$/;
if (!myreg.test(mobile)) {
alert('请输入有效的手机号码!');
$(obj).val("");
document.form1.mobile.focus();
return false;
}
}
});


上述写法,会使函数validateMobile()失效,可能是因为$(function(){})的执行顺序相对普通的js函数和事件加载机制的执行顺序要靠后,所以导致函数绑定失败。
解决方法:

把function validateMobile(obj){...}移出$(function{});就行了,并且要保证放在$(function{});之前。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: