首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

在编译时总是提示“tbSelYear”、“tbSelMonth”未定义,该如何处理

2012-01-16 
在编译时总是提示“tbSelYear”、“tbSelMonth”未定义vargdCtrlnewObject()vargoSelectTagnewArray()vargc

在编译时总是提示“tbSelYear”、“tbSelMonth”未定义
var   gdCtrl   =   new   Object();
var   goSelectTag   =   new   Array();
var   gcGray   =   "#808080 ";
var   gcToggle   =   "#FFFF00 ";
var   gcred   =   "#FF0000 ";
var   gcBG   =   "#F8F9EE ";
var   gcGreen   =   "#00FF00 "

var   gdCurDate   =   new   Date();
var   giYear   =   gdCurDate.getFullYear();
var   giMonth   =   gdCurDate.getMonth()+1;
var   giDay   =   gdCurDate.getDate();

function   fSetDate(iYear,   iMonth,   iDay){
    gdCtrl.value   =   iYear+ "- "+iMonth+ "- "+iDay;
}

function   fSetSelected(aCell){                                                                                
    var   iOffset   =   0;
    var   iYear   =parseInt(tbSelYear.value);//动态改变文本框的年
    var   iMonth   =   parseInt(tbSelMonth.value);//动态改变文本框的月

    aCell.bgColor   =   gcBG;
    with   (aCell.children[ "cellText "]){
    var   iDay   =   parseInt(innerText);
    if   (color==gcGray)
iOffset   =   (Victor <10)?-1:1;
iMonth   +=   iOffset;
if   (iMonth <1)   {
iYear--;
iMonth   =   12;
}else   if   (iMonth> 12){
iYear++;
iMonth   =   1;
}
    }
}


function   fBuildCal(iYear,   iMonth)   {
    var   aMonth=new   Array();
    for(i=1;i <7;i++)
    aMonth[i]=new   Array(i);

    var   dCalDate=new   Date(iYear,   iMonth-1,   1);
    var   iDayOfFirst=dCalDate.getDay();
    var   iDaysInMonth=new   Date(iYear,   iMonth,   0).getDate();
    var   iOffsetLast=new   Date(iYear,   iMonth-1,   0).getDate()-iDayOfFirst+1;
    var   iDate   =   1;
    var   iNext   =   1;

    for   (d   =   0;   d   <   7;   d++)
aMonth[1][d]   =   (d <iDayOfFirst)?-(iOffsetLast+d):iDate++;
    for   (w   =   2;   w   <   7;   w++)
    for   (d   =   0;   d   <   7;   d++)
aMonth[w][d]   =   (iDate <=iDaysInMonth)?iDate++:-(iNext++);
    return   aMonth;
}

function   fDrawCal(iYear,   iMonth,   iCellHeight,   iDateTextSize)   {
    var   i   =   0;
    var   w   =   0;
    var   d   =   0;
    var   WeekDay   =   new   Array( "日 ", "一 ", "&nbsp;二 ", "&nbsp;三 ", "&nbsp;四 ", "&nbsp;五 ", "&nbsp;六 ");
    var   styleTD   =   "bgcolor= ' "+gcBG+ " '   valign= 'middle '   align= 'center '   height= ' "+iCellHeight+ " '   style= 'font-size: "+iDateTextSize+ ";   宋体; ";



    with   (document)   {
write( " <tr> ");
for(i=0;   i <7;   i++)
write( " <td   "   +   styleTD   +   "color:purple '> "   +   WeekDay[i]   +   " </td> ");
write( " </tr> ");

for   (w   =   1;   w   <   7;   w++)   {
write( " <tr> ");
for   (d   =   0;   d   <   7;   d++)   {
//write( " <td   id=calCell   "   +   styleTD   +   "cursor:hand; '   onMouseOver= 'this.bgColor=gcToggle '   onMouseOut= 'this.bgColor=gcBG '   onclick= 'fSetSelected(this) '> ");
write( " <td   id=calCell   "   +   styleTD   +   "cursor:hand; '   onMouseOver= 'this.bgColor=gcToggle '   onMouseOut= 'this.bgColor=gcBG ' '> ");
write( " <font   id=cellText   Victor= 'Liming   Weng '>   </font> ");
write( " </td> ")
}
write( " </tr> ");
}
    }
}

function   fUpdateCal(iYear,   iMonth)   {
    myMonth   =   fBuildCal(iYear,   iMonth);
    var   i   =   0;
    var   w   =   0;
    var   d   =   0;

    for   (w   =   0;   w   <   6;   w++)
for   (d   =   0;   d   <   7;   d++)
with   (cellText[(7*w)+d])   {
Victor   =   i++;
if   (myMonth[w+1][d] <0)   {
color   =   gcGray;
innerText   =   -myMonth[w+1][d];
}
else
{
if   (myMonth[w+1][d]   ==   giDay   &&   iYear   ==   giYear   &&   iMonth   ==   giMonth)
{
//color   =   ((d==0)||(d==6))? "blue ": "black ";
color   =   "red ";
innerText   =   myMonth[w+1][d];
}
else
{
color   =   ((d==0)||(d==6))? "blue ": "black ";
innerText   =   myMonth[w+1][d];
}
}
}
}
//该函数动态改变年后引起表格中的变化
function   fSetYearMon(iYear,   iMon){
    tbSelMonth.options[iMon-1].selected   =   true;
    for   (i   =   0;   i   <   tbSelYear.length;   i++)
if   (tbSelYear.options[i].value   ==   iYear)
tbSelYear.options[i].selected   =   true;
    fUpdateCal(iYear,   iMon);//将改变厚的值传给fUpdateCal()以便以在表格中显示变化
}

function   fPrevMonth(){
    var   iMon   =   tbSelMonth.value;
    var   iYear   =   tbSelYear.value;

    if   (--iMon <1)   {
    iMon   =   12;
    iYear--;
    }

    fSetYearMon(iYear,   iMon);
}

function   fNextMonth(){
    var   iMon   =   tbSelMonth.value;
    var   iYear   =   tbSelYear.value;

    if   (++iMon> 12)   {
    iMon   =   1;


    iYear++;
    }

    fSetYearMon(iYear,   iMon);
}

function   ShowCalendar()
{
var   gMonths   =   new   Array( "&nbsp;1月 ", "&nbsp;2月 ", "&nbsp;3月 ", "&nbsp;4月 ", "&nbsp;5月 ", "&nbsp;6月 ", "&nbsp;7月 ", "&nbsp;8月 ", "&nbsp;9月 ", "10月 ", "11月 ", "12月 ");

with   (document)   {
write( " <table   border= '0 '   bgcolor= '#F8F9EE '> ");
write( " <TR> ");
write( " <td   valign= 'middle '   align= 'center '> <input   type= 'button '   name= 'PrevMonth '   value= '< '   style= 'height:18;width:18 '   onClick= 'fPrevMonth() '> ");
write( "&nbsp; <SELECT   name= 'tbSelYear '   onChange= 'fUpdateCal(tbSelYear.value,   tbSelMonth.value) '   style= 'font-color:#000080;width:50;border:1   solid   #99CCFF;   font-size:9pt;   background-color:#F8F9EE '   Victor= 'Won '> ");
for(i=1900;i <=2100;i++)
write( " <OPTION   value= ' "+i+ " '> "+i+ " </OPTION> ");
write( " </SELECT> ");
write( " <select   name= 'tbSelMonth '   onChange= 'fUpdateCal(tbSelYear.value,   tbSelMonth.value) '     style= 'font-color:#000080;width:50;border:0   solid   #99CCFF;   font-size:9pt;   background-color:#F8F9EE '   Victor= 'Won '> ");
for   (i=0;   i <12;   i++)
write( " <option   value= ' "+(i+1)+ " '> "+gMonths[i]+ " </option> ");
write( " </SELECT> ");
write( "&nbsp; <input   type= 'button '   name= 'PrevMonth '   value= '> '   style= 'height:18;width:18 '   onclick= 'fNextMonth() '> ");
write( " </td> ");
write( " </TR> <TR> ");
write( " <td   align= 'center '> ");
write( " <table   border= '0 '   cellspacing= '0 '   cellpadding= '0 '   width= '100% '> <tr> <td> <table   border= '0 '   cellspacing= '0 '   width= '100% '   cellpadding= '0 '> ");
fDrawCal(giYear,   giMonth,   12,   12);
write( " </table> </td> </tr> </table> ");
write( " </td> </TR> </TABLE> ");
fSetYearMon(giYear,   giMonth);
}
}
我的问题就如同标题,我的这个代码在运行的时候,总是报“tbSelYear”、“tbSelMonth”未定义,我查了好久没有找出问题所在,请高手们帮忙找找问题。而它报的两个未定义的对象是两个下拉列表控件,我在代码中已经写了,它怎么会报未定义呢。

[解决办法]
定义个全局变量:
var tbSelYear = document.getElementsByName( "tbSelYear ")[0];
var tbSelMonth = document.getElementsByName( "tbSelMonth ")[0];
这个要写在上面那俩对象下面。

热点排行