我今天学习一个项目 下面是jsp页面调用的js页面的一段代码 完全看不懂啊 代码比较多 因为是刚接触 所以一点都不理解 希望各位高手能够指点一二啊 在这里先行谢过了!!H.Login = (function(){
var _cache = {};
var checkInputVal = function(){
if(_cache.inputs){
for(var i = 0, len = _cache.inputs.length; i < len; i++){
var input = _cache.inputs[i];
var label = input.prev();
if(input.val() != ""){
label.css("display") != "none" && label.hide();
}
else{
label.css("display") == "none" && label.show();
}
}
}
}
var checkFun = function(input){
var val = input.val();
var type = input.attr("errortype");
switch(type){
case "notempty":
if($.trim(val) == ""){
return false;
}
if(input.attr("minlen") && val.length < Number(input.attr("minlen"))){
return false;
}
break;
}
return true;
}
var showMsg = function(input, error_msg){
var par = input.parent();
var hint = par.find(".popup-hint");
var warIco = par.find(".ico-war");
var msg = input.attr("errmsg");
if(!hint.length){
hint = $('<span class="popup-hint" style="z-index:3"><i></i>'+msg+'</span>');
warIco = $('<b class="ico-war"></b>');
warIco.on("mouseover", function(){
warIco.attr("is_over", "1");
hint.show();
}).on("mouseout", function(){
warIco.attr("is_over", "");
hint.hide();
});
par.append(warIco);
par.append(hint);
}
if(error_msg){
msg = error_msg;
}
hint.html('<i></i>' + msg);
warIco.show();
hint.show();
/*window.setTimeout(function(){
if(!warIco.attr("is_over")){
hint.hide();
}
}, 2000);*/
input.addClass("text-war");
}
var hideMsg = function(input){
var par = input.parent();
var hint = par.find(".popup-hint");
var warIco = par.find(".ico-war");
if(hint.length){
hint.hide();
}
if(warIco.length){
warIco.hide();
}
input.removeClass("text-war");
}
var _focusTimer;
var bindInput = function(input){
var label = input.prev();
label.on("mouseover", function(){
if(_focusTimer) window.clearTimeout(_focusTimer);
_focusTimer = window.setTimeout(function(){
input.focus();
}, 200);
}).on("mouseout", function(){
if(_focusTimer) window.clearTimeout(_focusTimer);
});
}
return {
Init: function(form){
var userName = $("#userName"), pwd = $("#userPwd");
_cache.inputs = [userName, pwd];
bindInput(userName);
userName.focus();
userName.on("keypress", function(e){
if(e.keyCode == 13){
if($(this).val() && pwd.val() == ""){
window.setTimeout(function(){
pwd.focus();
}, 10);
return false;
}
}
});
bindInput(pwd);
for(var i = 0, len = _cache.inputs.length; i < len; i++){
var ele = _cache.inputs[i];
ele.on("keydown", function(){
hideMsg($(this));
})
}
form.on("submit", function(){
var res = true;
var firstDom;
for(var i = 0, len = _cache.inputs.length; i < len; i++){
var ele = _cache.inputs[i];
if(!checkFun(ele)){
showMsg(ele);
res = false;
if(!firstDom){
firstDom = ele;
}
}
else{
hideMsg(ele);
}
}
if(firstDom){
firstDom.focus();
}
return res;
});
window.setInterval(checkInputVal, 100);
},
ShowMsg: function(input, msg){
showMsg(input, msg);
},
HideMsg: function(input){
hideMsg(input);
}
}
})();
var _cache = {};
var checkInputVal = function(){
if(_cache.inputs){
for(var i = 0, len = _cache.inputs.length; i < len; i++){
var input = _cache.inputs[i];
var label = input.prev();
if(input.val() != ""){
label.css("display") != "none" && label.hide();
}
else{
label.css("display") == "none" && label.show();
}
}
}
}
var checkFun = function(input){
var val = input.val();
var type = input.attr("errortype");
switch(type){
case "notempty":
if($.trim(val) == ""){
return false;
}
if(input.attr("minlen") && val.length < Number(input.attr("minlen"))){
return false;
}
break;
}
return true;
}
var showMsg = function(input, error_msg){
var par = input.parent();
var hint = par.find(".popup-hint");
var warIco = par.find(".ico-war");
var msg = input.attr("errmsg");
if(!hint.length){
hint = $('<span class="popup-hint" style="z-index:3"><i></i>'+msg+'</span>');
warIco = $('<b class="ico-war"></b>');
warIco.on("mouseover", function(){
warIco.attr("is_over", "1");
hint.show();
}).on("mouseout", function(){
warIco.attr("is_over", "");
hint.hide();
});
par.append(warIco);
par.append(hint);
}
if(error_msg){
msg = error_msg;
}
hint.html('<i></i>' + msg);
warIco.show();
hint.show();
/*window.setTimeout(function(){
if(!warIco.attr("is_over")){
hint.hide();
}
}, 2000);*/
input.addClass("text-war");
}
var hideMsg = function(input){
var par = input.parent();
var hint = par.find(".popup-hint");
var warIco = par.find(".ico-war");
if(hint.length){
hint.hide();
}
if(warIco.length){
warIco.hide();
}
input.removeClass("text-war");
}
var _focusTimer;
var bindInput = function(input){
var label = input.prev();
label.on("mouseover", function(){
if(_focusTimer) window.clearTimeout(_focusTimer);
_focusTimer = window.setTimeout(function(){
input.focus();
}, 200);
}).on("mouseout", function(){
if(_focusTimer) window.clearTimeout(_focusTimer);
});
}
return {
Init: function(form){
var userName = $("#userName"), pwd = $("#userPwd");
_cache.inputs = [userName, pwd];
bindInput(userName);
userName.focus();
userName.on("keypress", function(e){
if(e.keyCode == 13){
if($(this).val() && pwd.val() == ""){
window.setTimeout(function(){
pwd.focus();
}, 10);
return false;
}
}
});
bindInput(pwd);
for(var i = 0, len = _cache.inputs.length; i < len; i++){
var ele = _cache.inputs[i];
ele.on("keydown", function(){
hideMsg($(this));
})
}
form.on("submit", function(){
var res = true;
var firstDom;
for(var i = 0, len = _cache.inputs.length; i < len; i++){
var ele = _cache.inputs[i];
if(!checkFun(ele)){
showMsg(ele);
res = false;
if(!firstDom){
firstDom = ele;
}
}
else{
hideMsg(ele);
}
}
if(firstDom){
firstDom.focus();
}
return res;
});
window.setInterval(checkInputVal, 100);
},
ShowMsg: function(input, msg){
showMsg(input, msg);
},
HideMsg: function(input){
hideMsg(input);
}
}
})();
w3c的教程 两小时看完 然后再来读这段代码 你会有很大的收获