$(function(){
$(".win-homepage").click(function() {
if (document.all) {
document.body.style.behavior = 'url(#default#homepage)';
document.body.setHomePage(document.URL);
} else {
alert("设置首页失败,请手动设置!");
}
});
$(".win-favorite").click(function() {
var sURL = document.URL;
var sTitle = document.title;
try {
window.external.addFavorite(sURL, sTitle);
} catch (e) {
try {
window.sidebar.addPanel(sTitle, sURL, "");
} catch (e) {
alert("加入收藏失败,请使用Ctrl+D进行添加");
}
}
});
$(".win-forward").click(function() {
window.history.forward(1);
});
$(".win-back").click(function() {
window.history.back(-1);
});
$(".win-backtop").click(function() {
$('body,html').animate({
scrollTop: 0
}, 1000);
return false;
});
$(".win-refresh").click(function() {
window.location.reload();
});
$(".win-print").click(function() {
window.print();
});
$(".win-close").click(function() {
window.close();
});
$('textarea, input, select').blur(function() {
var e = $(this);
if (e.attr("data-validate")) {
e.closest('.field').find(".input-help").remove();
var $checkdata = e.attr("data-validate").split(',');
var $checkvalue = e.val();
var $checkstate = true;
var $checktext = "";
if (e.attr("placeholder") == $checkvalue) {
$checkvalue = "";
}
if ($checkvalue != "" || e.attr("data-validate").indexOf("required") >= 0) {
for (var i = 0; i < $checkdata.length; i++) {
var $checktype = $checkdata[i].split(':');
if (!$uicheck(e, $checktype[0], $checkvalue)) {
$checkstate = false;
$checktext = $checktext + "
" + $checktype[1] + "";
}
}
};
if ($checkstate) {
e.closest('.form-group').removeClass("check-error");
e.parent().find(".input-help").remove();
e.closest('.form-group').addClass("check-success");
} else {
e.closest('.form-group').removeClass("check-success");
e.closest('.form-group').addClass("check-error");
e.closest('.field').append('');
}
}
});
$uicheck = function(element, type, value) {
$finalui = value.replace(/(^\s*)|(\s*$)/g, "");
switch (type) {
case "required":
return /[^(^\s*)|(\s*$)]/.test($finalui);
break;
case "chinese":
return /^[\u0391-\uFFE5]+$/.test($finalui);
break;
case "number":
return /^([+-]?)\d*\.?\d+$/.test($finalui);
break;
case "integer":
return /^-?[0-9]\d*$/.test($finalui);
break;
case "plusinteger":
return /^[0-9]\d*$/.test($finalui);
break;
case "plusinteger0":
return /^[1-9]\d*$/.test($finalui);
break;
case "unplusinteger":
return /^-[1-9]\d*$/.test($finalui);
break;
case "znumber":
return /^[+]{0,1}(\d+)$|^[+]{0,1}(\d+\.\d+)$/.test($finalui);
break;
case "fnumber":
return /^-[1-9]\d*|0$/.test($finalui);
break;
case "double":
return /^[-\+]?\d+(\.\d+)?$/.test($finalui);
break;
case "plusdouble":
return /^[+]?\d+(\.\d+)?$/.test($finalui);
break;
case "unplusdouble":
return /^-[1-9]\d*\.\d*|-0\.\d*[1-9]\d*$/.test($finalui);
break;
case "english":
return /^[A-Za-z]+$/.test($finalui);
break;
case "username":
return /^[a-z]\w{3,}$/i.test($finalui);
break;
case "mobile":
return /^\s*(1\d{10})\s*$/.test($finalui);
break;
case "phone":
return /^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/.test($finalui);
break;
case "tel":
return /^\s*(1\d{10})\s*$/.test($finalui) || /^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/.test($finalui);
break;
case "email":
return /^[^@]+@[^@]+\.[^@]+$/.test($finalui);
break;
case "url":
return /^http(s?):\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/.test($finalui);
break;
case "ip":
return /^[\d\.]{7,15}$/.test($finalui);
break;
case "qq":
return /^[1-9]\d{4,10}$/.test($finalui);
break;
case "currency":
return /^\d+(\.\d+)?$/.test($finalui);
break;
case "zipcode":
return /^\d{6}$/.test($finalui);
break;
case "chinesename":
return /^[\u0391-\uFFE5]{2,15}$/.test($finalui);
break;
case "englishname":
return /^[A-Za-z]{1,161}$/.test($finalui);
break;
case "age":
return /^[1-99]?\d*$/.test($finalui);
break;
case "date":
return /^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$/.test($finalui);
break;
case "datetime":
return /^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-)) (20|21|22|23|[0-1]?\d):[0-5]?\d:[0-5]?\d$/.test($finalui);
break;
case "idcard":
return /^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/.test($finalui);
break;
case "bigenglish":
return /^[A-Z]+$/.test($finalui);
break;
case "smallenglish":
return /^[a-z]+$/.test($finalui);
break;
case "color":
return /^#[0-9a-fA-F]{6}$/.test($finalui);
break;
case "ascii":
return /^[\x00-\xFF]+$/.test($finalui);
break;
case "md5":
return /^([a-fA-F0-9]{32})$/.test($finalui);
break;
case "zip":
return /(.*)\.(rar|zip|7zip|tgz|7z)$/.test($finalui);
break;
case "img":
return /(.*)\.(jpg|gif|ico|jpeg|png|bmp)$/.test($finalui);
break;
case "doc":
return /(.*)\.(doc|xls|docx|xlsx|pdf)$/.test($finalui);
break;
case "mp3":
return /(.*)\.(mp3)$/.test($finalui);
break;
case "mp4":
return /(.*)\.(mp4)$/.test($finalui);
break;
case "video":
return /(.*)\.(rm|rmvb|wmv|avi|mp4|m4v|3gp|mkv|flv)$/.test($finalui);
break;
case "flash":
return /(.*)\.(swf|fla|flv)$/.test($finalui);
break;
case "radio":
var radio = element.closest('form').find('input[name="' + element.attr("name") + '"]:checked').length;
return eval(radio == 1);
break;
default:
var $test = type.split('#');
if ($test.length > 1) {
switch ($test[0]) {
case "compare":
return eval(Number($finalui) + $test[1]);
break;
case "regexp":
return new RegExp($test[1],"g").test($finalui);
break;
case "length":
var $length;
if (element.attr("type") == "checkbox") {
$length = element.closest('form').find('input[name="' + element.attr("name") + '"]:checked').length;
} else {
$length = $finalui.replace(/[\u4e00-\u9fa5]/g, "***").length;
}
return eval($length + $test[1]);
break;
case "ajax":
var $getdata;
var $url = $test[1] + $finalui;
$.ajaxSetup({
async: false
});
$.getJSON($url, function(data) {
$getdata = data.getdata;
});
if ($getdata == "true") {
return true;
}
break;
case "repeat":
return $finalui == jQuery('input[name="' + $test[1] + '"]').eq(0).val();
break;
default:
return true;
break;
}
break;
} else {
return true;
}
}
};
$('form').submit(function() {
$(this).find('input[data-validate],textarea[data-validate],select[data-validate]').trigger("blur");
var numError = $(this).find('.check-error').length;
if (numError) {
$(this).find('.check-error').first().find('input[data-validate],textarea[data-validate],select[data-validate]').first().focus().select();
return false;
}
});
$('.form-reset').click(function() {
$(this).closest('form').find(".input-help").remove();
$(this).closest('form').find('.form-submit').removeAttr('disabled');
$(this).closest('form').find('.form-group').removeClass("check-error");
$(this).closest('form').find('.form-group').removeClass("check-success");
});
$.fn.ajaxSubmit = function(fn) {
$(this).find("input[data-validate],textarea[data-validate],select[data-validate]").trigger("blur");
var numError = $(this).find(".check-error").length;
if (numError) {
$(this).find(".check-error").first().find("input[data-validate],textarea[data-validate],select[data-validate]").first().focus().select();
return false
}
if (fn && typeof fn == "function") {
fn()
}
};
});