/**
* 对Date的扩展,将 Date 转化为指定格式的String
* 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符,
* 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字)
* 例子:
* (new Date()).format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423
* (new Date()).format("yyyy-M-d h:m:s.S") ==> 2006-7-2 8:9:4.18
*/
Date.prototype.format = function (fmt) { //author: meizz
var o = {
"M+": this.getMonth() + 1, //月份
"d+": this.getDate(), //日
"h+": this.getHours(), //小时
"m+": this.getMinutes(), //分
"s+": this.getSeconds(), //秒
"q+": Math.floor((this.getMonth() + 3) / 3), //季度
"S": this.getMilliseconds() //毫秒
};
if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
for (var k in o)
if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
return fmt;
}
/**
* 防止某个URL的重新请求
* @param domId
*/
function reduceRequest(domId, event, expire) {
// 支持秒级别的过期设置
var date = new Date();
date.setTime(date.getTime()+expire*1000);
// 获取当前的form
var cookie_name = 'submit_'+ $.trim($(this).closest('form').attr("action"));
$.cookie(cookie_name);
if($.cookie(cookie_name) != null){
//阻止默认提交事件
event.preventDefault();
alert("请喝杯咖啡休息下");return false;
}else{
// 设置过期时间
$.cookie(cookie_name, (new Date()).format("yyyy-MM-dd HH:mm:ss"), { expires: date });
return true;
}
}
/**
* 在指定的时间内禁用某个对象
*/
function diableDom(domId, expire) {
var tagName = $("#"+domId).prop("tagName");
if(tagName=="A") {
// 提取之前的URL
var url = $("#"+domId).attr("href");
// 设置空连接
$("#"+domId).attr("href", "#");
// 超时重置连接
var t = setTimeout("$(\"#"+domId+"\").attr(\"href\", \"" + url + "\")", expire * 1000);
}
else if(tagName=="INPUT") {
// 禁用输入框
$('#'+domId).prop("disabled","disabled");
// 重新启用输入框
var t = setTimeout("$(\"#"+domId+"\").removeAttr(\"disabled\")",expire * 1000);
}
}
$(document).ready(function(){
// 禁用ID列表
var domIds=new Array("btnQuery");
var expire = 10;
$.each(domIds, function(index,domId){
$("#"+domId).click(function(event) {
//diableDom(domId, expire);
reduceRequest(domId, event, expire);
});
});
});
关于Zeno Chen
本人涉及的领域较多,杂而不精
程序设计语言: Perl, Java, PHP, Python;
数据库系统: MySQL,Oracle;
偶尔做做电路板的开发,主攻STM32单片机