请教,javascript不会编了

vasualsam 2003-10-20 12:14:50
下面函数的写法显然不好,我想改为后面的函数调用形式

function clk_content(no)
{
switch(no)
{
case 1:
if (page.slct_1_1.value == 0)
{
page.slct_1_2.disabled = true;
page.slct_1_2.value = 0;
page.ID_morning_1.disabled = true;
page.ID_morning_1.value = '';
}
else
{
page.slct_1_2.disabled = false;
page.ID_morning_1.disabled = false;
page.slct_1_3.disabled = true;
page.slct_1_3.value = 0;
}
if (page.slct_1_3.value != 0)
{
page.slct_1_1.disabled = true;
page.slct_1_1.value = 0;
page.slct_1_2.disabled = true;
page.slct_1_2.value = 0;
page.ID_morning_1.disabled = true;
page.ID_morning_1.value = '';
}
calcu();
break;
case 2:
if (page.slct_2_1.value == 0)
{
page.slct_2_2.disabled = true;
page.slct_2_2.value = 0;
page.ID_morning_2.disabled = true;
page.ID_morning_2.value = '';
}
else
{
page.slct_2_2.disabled = false;
page.ID_morning_2.disabled = false;
page.slct_2_3.disabled = true;
page.slct_2_3.value = 0;
}
if (page.slct_2_3.value != 0)
{
page.slct_2_1.disabled = true;
page.slct_2_1.value = 0;
page.slct_2_2.disabled = true;
page.slct_2_2.value = 0;
page.ID_morning_2.disabled = true;
page.ID_morning_2.value = '';
}
calcu();
break;
case 3:
if (page.slct_3_1.value == 0)
{
page.slct_3_2.disabled = true;
page.slct_3_2.value = 0;
page.ID_morning_3.disabled = true;
page.ID_morning_3.value = '';
}
else
{
page.slct_3_2.disabled = false;
page.ID_morning_3.disabled = false;
page.slct_3_3.disabled = true;
page.slct_3_3.value = 0;
}
if (page.slct_1_3.value != 0)
{
page.slct_3_1.disabled = true;
page.slct_3_1.value = 0;
page.slct_3_2.disabled = true;
page.slct_3_2.value = 0;
page.ID_morning_3.disabled = true;
page.ID_morning_3.value = '';
}
calcu();
break;
case 4:
if (page.slct_4_1.value == 0)
{
page.slct_4_2.disabled = true;
page.slct_4_2.value = 0;
page.ID_afternoon_1.disabled = true;
page.ID_afternoon_1.value = '';
}
else
{
page.slct_4_2.disabled = false;
page.ID_afternoon_1.disabled = false;
page.slct_4_3.disabled = true;
page.slct_4_3.value = 0;
}
if (page.slct_4_3.value != 0)
{
page.slct_4_1.disabled = true;
page.slct_4_1.value = 0;
page.slct_4_2.disabled = true;
page.slct_4_2.value = 0;
page.ID_afternoon_1.disabled = true;
page.ID_afternoon_1.value = '';
}
calcu();
break;
case 5:
if (page.slct_5_1.value == 0)
{
page.slct_5_2.disabled = true;
page.slct_5_2.value = 0;
page.ID_afternoon_2.disabled = true;
page.ID_afternoon_2.value = '';
}
else
{
page.slct_5_2.disabled = false;
page.ID_afternoon_2.disabled = false;
page.slct_5_3.disabled = true;
page.slct_5_3.value = 0;
}
if (page.slct_5_3.value != 0)
{
page.slct_5_1.disabled = true;
page.slct_5_1.value = 0;
page.slct_5_2.disabled = true;
page.slct_5_2.value = 0;
page.ID_afternoon_2.disabled = true;
page.ID_afternoon_2.value = '';
}
calcu();
break;
case 6:
if (page.slct_6_1.value == 0)
{
page.slct_6_2.disabled = true;
page.slct_6_2.value = 0;
page.ID_afternoon_3.disabled = true;
page.ID_afternoon_3.value = '';
}
else
{
page.slct_6_2.disabled = false;
page.ID_afternoon_3.disabled = false;
page.slct_6_3.disabled = true;
page.slct_6_3.value = 0;
}
if (page.slct_6_3.value != 0)
{
page.slct_6_1.disabled = true;
page.slct_6_1.value = 0;
page.slct_6_2.disabled = true;
page.slct_6_2.value = 0;
page.ID_afternoon_3.disabled = true;
page.ID_afternoon_3.value = '';
}
calcu();
break;
case 7:
if (page.slct_7_1.value == 0)
{
page.slct_7_2.disabled = true;
page.slct_7_2.value = 0;
page.ID_afternoon_4.disabled = true;
page.ID_afternoon_4.value = '';
}
else
{
page.slct_7_2.disabled = false;
page.ID_afternoon_4.disabled = false;
page.slct_7_3.disabled = true;
page.slct_7_3.value = 0;
}
if (page.slct_7_3.value != 0)
{
page.slct_7_1.disabled = true;
page.slct_7_1.value = 0;
page.slct_7_2.disabled = true;
page.slct_7_2.value = 0;
page.ID_afternoon_4.disabled = true;
page.ID_afternoon_4.value = '';
}
calcu();
break;
case 8:
if (page.slct_8_1.value == 0)
{
page.slct_8_2.disabled = true;
page.slct_8_2.value = 0;
page.ID_evening_1.disabled = true;
page.ID_evening_1.value = '';
}
else
{
page.slct_8_2.disabled = false;
page.ID_evening_1.disabled = false;
page.slct_8_3.disabled = true;
page.slct_8_3.value = 0;
}
if (page.slct_8_3.value != 0)
{
page.slct_8_1.disabled = true;
page.slct_8_1.value = 0;
page.slct_8_2.disabled = true;
page.slct_8_2.value = 0;
page.ID_evening_1.disabled = true;
page.ID_evening_1.value = '';
}
calcu();
break;
case 9:
if (page.slct_9_1.value == 0)
{
page.slct_9_2.disabled = true;
page.slct_9_2.value = 0;
page.ID_evening_2.disabled = true;
page.ID_evening_2.value = '';
}
else
{
page.slct_9_2.disabled = false;
page.ID_evening_2.disabled = false;
page.slct_9_3.disabled = true;
page.slct_9_3.value = 0;
}
if (page.slct_9_3.value != 0)
{
page.slct_9_1.disabled = true;
page.slct_9_1.value = 0;
page.slct_9_2.disabled = true;
page.slct_9_2.value = 0;
page.ID_evening_2.disabled = true;
page.ID_evening_2.value = '';
}
calcu();
break;
case 10:
if (page.slct_10_1.value == 0)
{
page.slct_10_2.disabled = true;
page.slct_10_2.value = 0;
page.ID_evening_3.disabled = true;
page.ID_evening_3.value = '';
}
else
{
page.slct_10_2.disabled = false;
page.ID_evening_3.disabled = false;
page.slct_10_3.disabled = true;
page.slct_10_3.value = 0;
}
if (page.slct_1_3.value != 0)
{
page.slct_10_1.disabled = true;
page.slct_10_1.value = 0;
page.slct_10_2.disabled = true;
page.slct_10_2.value = 0;
page.ID_evening_3.disabled = true;
page.ID_evening_3.value = '';
}
calcu();
break;
}
}

我想将case中相似的if语句改为函数调用形式,现在难点在几个变量名不同,虽然if..else结构一样并且变量个数也一样。
function clk_content(no)
{
switch(no)
{
case 1:
set_page(x,y);
calcu();
break;
case 2:
set_page(x,y);
calcu();
break;
case 3:
set_page(x,y);
calcu();
break;
case 4:
set_page(x,y);
calcu();
break;
case 5:
set_page(x,y);
calcu();
break;
case 6:
set_page(x,y);
calcu();
break;
case 7:
set_page(x,y);
calcu();
break;
case 8:
set_page(x,y);
calcu();
break;
case 9:
set_page(x,y);
calcu();
break;
case 10:
set_page(x,y);
calcu();
break;
}
}


function set_page(x,y)
{
if (page.slct_x_1.value == 0)
{
page.slct_x_2.disabled = true;
page.slct_x_2.value = 0;
page.y.disabled = true;
page.y.value = '';
}
else
{
page.slct_x_2.disabled = false;
page.y.disabled = false;
page.slct_x_3.disabled = true;
page.slct_x_3.value = 0;
}
if (page.slct_x_3.value != 0)
{
page.slct_x_1.disabled = true;
page.slct_x_1.value = 0;
page.slct_x_2.disabled = true;
page.slct_x_2.value = 0;
page.y.disabled = true;
page.y.value = '';
}
}




...全文
29 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
hillhero789 2003-10-22
  • 打赏
  • 举报
回复
msdn
angelheavens 2003-10-20
  • 打赏
  • 举报
回复
就用 js中的eval()呀,比如:
for(var i=0;i<str.length;i++){
eval('page.slct_x_'+i+'.disabled = true');
//...
}
//...
vasualsam 2003-10-20
  • 打赏
  • 举报
回复
谢谢回复

其实几个case间的区别仅在于名字的不同,如用循环不知怎么写才能给其赋值,现在想不通怎么实现,根本问题是如何用不同的字符组装成不同的变量,还能给其赋值。
angelheavens 2003-10-20
  • 打赏
  • 举报
回复
我看比较有规律,为何不用循环呢!?
vasualsam 2003-10-20
  • 打赏
  • 举报
回复
谢谢楼上的,调通了。
eval是javascript的内部函数吧,从哪里能查到它的用法。
见笑了。
hillhero789 2003-10-20
  • 打赏
  • 举报
回复
用eval

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧