// 主调用函数是 setday(this,[object])和setday(this),[object]是控件输出的控件名,举两个例子:
// 一、<input name=txt><input type=button value=setday onclick="setday(this,document.all.txt)">
// 二、<input onfocus="setday(this)">
//==================================================== WEB 页面显示部分 ======================================================
var outObject;
var outButton; //点击的按钮var outDate = ""; //存放对象的日期
var bUseTime = false; //是否使用时间
var odatelayer = window.frames.endDateLayer.document.all; //存放日历对象
var odatelayer = window.endDateLayer.document.all;
//odatelayer.bUseTimeLayer.innerText="NO";
bImgSwitch();
odatelayer.bUseTimeLayer.innerHTML = bImg;
function setday(tt, obj) //主调函数
{
if (arguments.length > 2) { alert("对不起!传入本控件的参数太多!"); return; }
if (arguments.length == 0) { alert("对不起!您没有传回本控件任何参数!"); return; }
var dads = document.all.endDateLayer.style;
var th = tt;
var ttop = tt.offsetTop; //TT控件的定位点高 var thei = tt.clientHeight; //TT控件本身的高
var tleft = tt.offsetLeft; //TT控件的定位点宽 var ttyp = tt.type; //TT控件的类型 while (tt = tt.offsetParent) { ttop += tt.offsetTop; tleft += tt.offsetLeft; }
dads.top = (ttyp == "image") ? ttop + thei : ttop + thei + 6;
dads.left = tleft;
outObject = (arguments.length == 1) ? th : obj;
outButton = (arguments.length == 1) ? null : th; //设定外部点击的按钮 //根据当前输入框的日期显示日历的年月
var reg = /^(\d+)-(\d{1,2})-(\d{1,2})/; //不含时间
var r = outObject.value.match(reg);
if (r != null) {
r[2] = r[2] - 1;
var d = new Date(r[1], r[2], r[3]);
if (d.getFullYear() == r[1] && d.getMonth() == r[2] && d.getDate() == r[3]) {
outDate = d;
parent.meizzTheYear = r[1];
parent.meizzTheMonth = r[2];
parent.meizzTheDate = r[3];
}
else {
outDate = "";
}
meizzSetDay(r[1], r[2] + 1);
}
else {
outDate = "";
meizzSetDay(new Date().getFullYear(), new Date().getMonth() + 1);
}
dads.display = ''; //判断初始化时是否使用时间,非严格验证
//if (outObject.value.length>10)
//{
bUseTime = true;
bImgSwitch();
odatelayer.bUseTimeLayer.innerHTML = bImg;
meizzWriteHead(meizzTheYear, meizzTheMonth);
//}
//else
//{
// bUseTime=false;
// bImgSwitch();
// odatelayer.bUseTimeLayer.innerHTML=bImg;
// meizzWriteHead(meizzTheYear,meizzTheMonth);
//} try {
event.returnValue = false;
}
catch (e) {
//此处排除错误,错误原因暂未找到。
}
}}上面是Calendar.js的部分代码,我在一个textBox中调用setday函数,运行时出现以下错误:Microsoft JScript 运行时错误: “setday”未定义,路径问题已经排除,应该是代码问题,恳请高手帮忙解决问题。这是textBox调用函数代码:<input id="tbCreateDate" runat="server" onfocus="setday(this)" type="text" readonly="readOnly" onclick="return tbCreateDate_onclick()" />
// 一、<input name=txt><input type=button value=setday onclick="setday(this,document.all.txt)">
// 二、<input onfocus="setday(this)">
//==================================================== WEB 页面显示部分 ======================================================
var outObject;
var outButton; //点击的按钮var outDate = ""; //存放对象的日期
var bUseTime = false; //是否使用时间
var odatelayer = window.frames.endDateLayer.document.all; //存放日历对象
var odatelayer = window.endDateLayer.document.all;
//odatelayer.bUseTimeLayer.innerText="NO";
bImgSwitch();
odatelayer.bUseTimeLayer.innerHTML = bImg;
function setday(tt, obj) //主调函数
{
if (arguments.length > 2) { alert("对不起!传入本控件的参数太多!"); return; }
if (arguments.length == 0) { alert("对不起!您没有传回本控件任何参数!"); return; }
var dads = document.all.endDateLayer.style;
var th = tt;
var ttop = tt.offsetTop; //TT控件的定位点高 var thei = tt.clientHeight; //TT控件本身的高
var tleft = tt.offsetLeft; //TT控件的定位点宽 var ttyp = tt.type; //TT控件的类型 while (tt = tt.offsetParent) { ttop += tt.offsetTop; tleft += tt.offsetLeft; }
dads.top = (ttyp == "image") ? ttop + thei : ttop + thei + 6;
dads.left = tleft;
outObject = (arguments.length == 1) ? th : obj;
outButton = (arguments.length == 1) ? null : th; //设定外部点击的按钮 //根据当前输入框的日期显示日历的年月
var reg = /^(\d+)-(\d{1,2})-(\d{1,2})/; //不含时间
var r = outObject.value.match(reg);
if (r != null) {
r[2] = r[2] - 1;
var d = new Date(r[1], r[2], r[3]);
if (d.getFullYear() == r[1] && d.getMonth() == r[2] && d.getDate() == r[3]) {
outDate = d;
parent.meizzTheYear = r[1];
parent.meizzTheMonth = r[2];
parent.meizzTheDate = r[3];
}
else {
outDate = "";
}
meizzSetDay(r[1], r[2] + 1);
}
else {
outDate = "";
meizzSetDay(new Date().getFullYear(), new Date().getMonth() + 1);
}
dads.display = ''; //判断初始化时是否使用时间,非严格验证
//if (outObject.value.length>10)
//{
bUseTime = true;
bImgSwitch();
odatelayer.bUseTimeLayer.innerHTML = bImg;
meizzWriteHead(meizzTheYear, meizzTheMonth);
//}
//else
//{
// bUseTime=false;
// bImgSwitch();
// odatelayer.bUseTimeLayer.innerHTML=bImg;
// meizzWriteHead(meizzTheYear,meizzTheMonth);
//} try {
event.returnValue = false;
}
catch (e) {
//此处排除错误,错误原因暂未找到。
}
}}上面是Calendar.js的部分代码,我在一个textBox中调用setday函数,运行时出现以下错误:Microsoft JScript 运行时错误: “setday”未定义,路径问题已经排除,应该是代码问题,恳请高手帮忙解决问题。这是textBox调用函数代码:<input id="tbCreateDate" runat="server" onfocus="setday(this)" type="text" readonly="readOnly" onclick="return tbCreateDate_onclick()" />
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货