日历控件导致textbox的onblur事件和TextChanged事件不执行
我在网页里放了个textbox,
<asp:TextBox ID="txtSdate" runat="server" onclick="SelectDate(this.name)" AutoPostBack="True" ontextchanged="txtSdate_TextChanged" OnBlur="refreshclick()" ></asp:TextBox>
用SelectDate(this.name)调用下面的js,来达到日历控件的目的,我想在选定日期后自动去刷新页面,也就是调用
ontextchanged="txtSdate_TextChanged",但是这样的效果是,不行将鼠标点在textbox里然后敲一下回车才能刷新
我又加了OnBlur="refreshclick()" ,选好日期后,在textbox外点一下鼠标,onblur事件同样不执行。
我看了下js文件,发现他是生成的div,也就是说选好日期后,txtSdate的Text并没有变,所以ontextchanged事件不执行吗?
有没有办法实现选点日期后自动调用ontextchanged或者OnBlur事件呢?
下面是生成日历的js文件,麻烦高手帮忙看看,谢谢!
var cal;
var isFocus=false;
function SelectDate(o,p,strFormat)
{
var date = new Date();
//alert(date);
var by = date.getFullYear() - 50;
// alert(by);
var ey = date.getFullYear() + 50;
// alert(ey);
var obj = document.getElementById(o);
// alert(o);
cal = (cal == null) ? new Calendar(by, ey, 0) : cal;
// alert(cal);
if(arguments.length > 2&&strFormat!=null)
{
cal.dateFormatStyle = strFormat;
// alert(strFormat);
// alert(cal.dateFormatStyle);
}
if(arguments.length == 1)
{
cal.show(obj);
// alert(obj);
}
else
{
var pop = document.getElementById(p);
cal.show(obj, pop);
// alert(pop);
}
}
String.prototype.toDate = function (style) {
var y = this.substring(style.indexOf('y'), style.lastIndexOf('y') + 1);
var m = this.substring(style.indexOf('M'), style.lastIndexOf('M') + 1);
var d = this.substring(style.indexOf('d'), style.lastIndexOf('d') + 1);
if (isNaN(y)) y = new Date().getFullYear();
if (isNaN(m)) m = new Date().getMonth();
if (isNaN(d)) d = new Date().getDate();
var dt;
eval("dt = new Date('" + y + "', '" + (m - 1) + "','" + d + "')");
return dt;
// alert(dt);
}
Date.prototype.format = function(style) {
var o = {
"M+" : this.getMonth() + 1,
"d+" : this.getDate(),
"h+" : this.getHours(),
"m+" : this.getMinutes(),
"s+" : this.getSeconds(),
"w+" : "天一二三四五六".charAt(this.getDay()),
"q+" : Math.floor((this.getMonth() + 3) / 3),
"S" : this.getMilliseconds()
}
if(/(y+)/.test(style)) {
style = style.replace(RegExp.$1,
(this.getFullYear() + "").substr(4 - RegExp.$1.length));
}
for(var k in o){
if(new RegExp("("+ k +")").test(style)){
style = style.replace(RegExp.$1,
RegExp.$1.length == 1 ? o[k] :
("00" + o[k]).substr(("" + o[k]).length));
}
}
return style;
};
function Calendar(beginYear, endYear, lang, dateFormatStyle) {
this.beginYear = 1990;
this.endYear = 2010;
this.lang = 0;
this.dateFormatStyle = "yyyy-MM-dd";
if (beginYear != null && endYear != null){
this.beginYear = beginYear