为何“document.all.subcategoryid.options”会报错?

hiflash 2003-02-20 09:27:30
在Windows 2000 Server 中, 为何“document.all.subcategoryid.options”会报错?而在Windows 2000 Professional不会?
系统提示:document.all.subcategoryid.options 不是对象
...全文
100 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangxj0600 2003-02-20
  • 打赏
  • 举报
回复
grand_subcategory_id_array页没有定义
我现在把这两个Array定义成和你前面的一样,在添加了一个select
具体array里面的和select自己修改
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>

<BODY>
<SCRIPT LANGUAGE=JavaScript>
<!--
function checksubmit(cform){
if (cform.keyword.value ==''){
alert('请输入检索关键字');
return false;
}
}
//-->
</SCRIPT>
<script language='javascript'>
var category_array = new Array('--选择专业名称--','电子信息工程','计算机科学与技术','通信工程','信息管理与信息系统','自动化');
var category_id_array = new Array(' ','电子信息工程','计算机科学与技术','通信工程','信息管理与信息系统','自动化');
var subcategory_array = new Array(new Array('----选择班级----'),new Array('----选择班级----','电子0011','电子0012','电子0112','电子0111','电子9911','电子9912','电子9913'),new Array('----选择班级----','计算0111','计算0112','计算0113','计算0011','计算0012','计算9911','计算9912'),new Array('----选择班级----','计算0013','通信0111','通信0112','通信0011','通信0012','通信9911','通信9912'),new Array('----选择班级----','信息0111','信息0112','信息0011','信息0012','信息0013','信息9911','信息9912'),new Array('----选择班级----','自动0111','自动0112','自动0111','自动0012','自动9912','自动9912'));
var subcategory_id_array = new Array(new Array(0),new Array(0,'电子0011','电子0012','电子0112','电子0111','电子9911','电子9912','电子9913'),new Array(0,'计算0111','计算0112','计算0113','计算0011','计算0012','计算9911','计算9912'),new Array(0,'计算0013','通信0111','通信0112','通信0011','通信0012','通信9911','通信9912'),new Array(0,'信息0111','信息0112','信息0011','信息0012','信息0013','信息9911','信息9912'),new Array(0,'自动0111','自动0112','自动0111','自动0012','自动9912','自动9912'));
var grand_subcategory_id_array = new Array(new Array('----选择班级----'),new Array('----选择班级----','电子0011','电子0012','电子0112','电子0111','电子9911','电子9912','电子9913'),new Array('----选择班级----','计算0111','计算0112','计算0113','计算0011','计算0012','计算9911','计算9912'),new Array('----选择班级----','计算0013','通信0111','通信0112','通信0011','通信0012','通信9911','通信9912'),new Array('----选择班级----','信息0111','信息0112','信息0011','信息0012','信息0013','信息9911','信息9912'),new Array('----选择班级----','自动0111','自动0112','自动0111','自动0012','自动9912','自动9912'));
var grand_subcategory_array = new Array(new Array('----选择班级----'),new Array('----选择班级----','电子0011','电子0012','电子0112','电子0111','电子9911','电子9912','电子9913'),new Array('----选择班级----','计算0111','计算0112','计算0113','计算0011','计算0012','计算9911','计算9912'),new Array('----选择班级----','计算0013','通信0111','通信0112','通信0011','通信0012','通信9911','通信9912'),new Array('----选择班级----','信息0111','信息0112','信息0011','信息0012','信息0013','信息9911','信息9912'),new Array('----选择班级----','自动0111','自动0112','自动0111','自动0012','自动9912','自动9912'));
function change_category() {
var new_category_index = document.all.categoryid.selectedIndex;
var new_subcategory_index = 0;
var new_grand_subcategory_index = 0;
document.all.subcategoryid.options.length = 0;
for (i = 0; i < subcategory_array[new_category_index].length; i ++) {
var this_option = new Option;
this_option.text = subcategory_array[new_category_index][i];
this_option.value = subcategory_id_array[new_category_index][i];
document.all.subcategoryid.options[i] = this_option;
}
document.all.subcategoryid.selectedIndex = new_subcategory_index;
document.all.grandcategoryid.options.length = 0;
for (i = 0; i < grand_subcategory_array[new_category_index][new_subcategory_index].length; i ++) {
var this_option = new Option;
this_option.text = grand_subcategory_array[new_category_index][new_subcategory_index][i];
this_option.value = grand_subcategory_id_array[new_category_index][new_subcategory_index][i];
document.all.grandcategoryid.options[i] = this_option;
}
document.all.grandcategoryid.selectedIndex = new_grand_subcategory_index;
}
function change_subcategory_category() {
var new_category_index = document.all.categoryid.selectedIndex;
var new_subcategory_index = document.all.subcategoryid.selectedIndex;
var new_grand_subcategory_index = 0;
document.all.grandcategoryid.options.length = 0;
for (i = 0; i < grand_subcategory_array[new_category_index][new_subcategory_index].length; i ++) {
var this_option = new Option;
this_option.text = grand_subcategory_array[new_category_index][new_subcategory_index][i];
this_option.value = grand_subcategory_id_array[new_category_index][new_subcategory_index][i];
document.all.grandcategoryid.options[i] = this_option;
}
document.all.grandcategoryid.selectedIndex = new_grand_subcategory_index;
}
</script>

<form method="POST" action="t_list.asp" name="form1">
<center>
选择专业:<select size="1" id="categoryid" onchange="change_category();" style="COLOR: #0066ff">
<option selected value="0">全部</option>
<option>1</option>
</select>
选择班级:<select size="1" id="subcategoryid" onchange="change_subcategory_category();" style="COLOR: #0066ff">
<option selected value="0">全部</option>
</select>
<select id=grandcategoryid></select>
</center>
<br>
<script language="javascript">

var i;

var first_category_index = 0;

var first_subcategory_index = 0;

var first_grand_subcategory_index = 0;



for (i = 0; i < category_array.length; i ++) {

var this_option = new Option;

this_option.text = category_array[i];

this_option.value = category_id_array[i];

document.all.categoryid.options[i] = this_option;

document.all.categoryid.selectedIndex = first_category_index;

}



document.all.subcategoryid.options.length = 0;

for (i = 0; i < subcategory_array[first_category_index].length; i ++) {

var this_option = new Option;

this_option.text = subcategory_array[first_category_index][i];

this_option.value = subcategory_id_array[first_category_index][i];

document.all.subcategoryid.options[i] = this_option;

}

document.all.subcategoryid.selectedIndex = first_subcategory_index;



document.all.grandcategoryid.options.length = 0;

for (i = 0; i < grand_subcategory_array[first_category_index][first_subcategory_index].length; i ++) {

var this_option = new Option;

this_option.text = grand_subcategory_array[first_category_index][first_subcategory_index][i];

this_option.value = grand_subcategory_id_array[first_category_index][first_subcategory_index][i];

document.all.grandcategoryid.options[i] = this_option;

}

document.all.grandcategoryid.selectedIndex = first_grand_subcategory_index;

</script>
</BODY>
</HTML>



wangxj0600 2003-02-20
  • 打赏
  • 举报
回复
错误很多,你的目的是什么???
希默软件 2003-02-20
  • 打赏
  • 举报
回复
只要这两级的级联?
hiflash 2003-02-20
  • 打赏
  • 举报
回复
那应该如何更改?

贴子已经加分到300分,请更改
meizz 2003-02-20
  • 打赏
  • 举报
回复
grand_subcategory_array 这个数组不存在
name=grandcategoryid 的 select 下拉框网页中也不存在
hiflash 2003-02-20
  • 打赏
  • 举报
回复
程序如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>

<BODY>
<SCRIPT LANGUAGE=JavaScript>
<!--
function checksubmit(cform){
if (cform.keyword.value ==''){
alert('请输入检索关键字');
return false;
}
}
//-->
</SCRIPT>
<script language='javascript'>
var category_array = new Array('--选择专业名称--','电子信息工程','计算机科学与技术','通信工程','信息管理与信息系统','自动化');
var category_id_array = new Array(' ','电子信息工程','计算机科学与技术','通信工程','信息管理与信息系统','自动化');
var subcategory_array = new Array(new Array('----选择班级----'),new Array('----选择班级----','电子0011','电子0012','电子0112','电子0111','电子9911','电子9912','电子9913'),new Array('----选择班级----','计算0111','计算0112','计算0113','计算0011','计算0012','计算9911','计算9912'),new Array('----选择班级----','计算0013','通信0111','通信0112','通信0011','通信0012','通信9911','通信9912'),new Array('----选择班级----','信息0111','信息0112','信息0011','信息0012','信息0013','信息9911','信息9912'),new Array('----选择班级----','自动0111','自动0112','自动0111','自动0012','自动9912','自动9912'));
var subcategory_id_array = new Array(new Array(0),new Array(0,'电子0011','电子0012','电子0112','电子0111','电子9911','电子9912','电子9913'),new Array(0,'计算0111','计算0112','计算0113','计算0011','计算0012','计算9911','计算9912'),new Array(0,'计算0013','通信0111','通信0112','通信0011','通信0012','通信9911','通信9912'),new Array(0,'信息0111','信息0112','信息0011','信息0012','信息0013','信息9911','信息9912'),new Array(0,'自动0111','自动0112','自动0111','自动0012','自动9912','自动9912'));
function change_category() {
var new_category_index = document.all.categoryid.selectedIndex;
var new_subcategory_index = 0;
var new_grand_subcategory_index = 0;
document.all.subcategoryid.options.length = 0;
for (i = 0; i < subcategory_array[new_category_index].length; i ++) {
var this_option = new Option;
this_option.text = subcategory_array[new_category_index][i];
this_option.value = subcategory_id_array[new_category_index][i];
document.all.subcategoryid.options[i] = this_option;
}
document.all.subcategoryid.selectedIndex = new_subcategory_index;
document.all.grandcategoryid.options.length = 0;
for (i = 0; i < grand_subcategory_array[new_category_index][new_subcategory_index].length; i ++) {
var this_option = new Option;
this_option.text = grand_subcategory_array[new_category_index][new_subcategory_index][i];
this_option.value = grand_subcategory_id_array[new_category_index][new_subcategory_index][i];
document.all.grandcategoryid.options[i] = this_option;
}
document.all.grandcategoryid.selectedIndex = new_grand_subcategory_index;
}
function change_subcategory_category() {
var new_category_index = document.all.categoryid.selectedIndex;
var new_subcategory_index = document.all.subcategoryid.selectedIndex;
var new_grand_subcategory_index = 0;
document.all.grandcategoryid.options.length = 0;
for (i = 0; i < grand_subcategory_array[new_category_index][new_subcategory_index].length; i ++) {
var this_option = new Option;
this_option.text = grand_subcategory_array[new_category_index][new_subcategory_index][i];
this_option.value = grand_subcategory_id_array[new_category_index][new_subcategory_index][i];
document.all.grandcategoryid.options[i] = this_option;
}
document.all.grandcategoryid.selectedIndex = new_grand_subcategory_index;
}
</script>

<form method="POST" action="t_list.asp" name="form1">
<center>
选择专业:<select size="1" name="categoryid" onchange="change_category();" style="COLOR: #0066ff">
<option selected value="0">全部</option>
<option>1</option>
</select>
选择班级:<select size="1" name="subcategoryid" onchange="change_subcategory_category();" style="COLOR: #0066ff">
<option selected value="0">全部</option>
</select>
</center>
<br>
<script language="javascript">

var i;

var first_category_index = 0;

var first_subcategory_index = 0;

var first_grand_subcategory_index = 0;



for (i = 0; i < category_array.length; i ++) {

var this_option = new Option;

this_option.text = category_array[i];

this_option.value = category_id_array[i];

document.all.categoryid.options[i] = this_option;

document.all.categoryid.selectedIndex = first_category_index;

}



document.all.subcategoryid.options.length = 0;

for (i = 0; i < subcategory_array[first_category_index].length; i ++) {

var this_option = new Option;

this_option.text = subcategory_array[first_category_index][i];

this_option.value = subcategory_id_array[first_category_index][i];

document.all.subcategoryid.options[i] = this_option;

}

document.all.subcategoryid.selectedIndex = first_subcategory_index;



document.all.grandcategoryid.options.length = 0;

for (i = 0; i < grand_subcategory_array[first_category_index][first_subcategory_index].length; i ++) {

var this_option = new Option;

this_option.text = grand_subcategory_array[first_category_index][first_subcategory_index][i];

this_option.value = grand_subcategory_id_array[first_category_index][first_subcategory_index][i];

document.all.grandcategoryid.options[i] = this_option;

}

document.all.grandcategoryid.selectedIndex = first_grand_subcategory_index;

</script>
</BODY>
</HTML>


请各位高手指教,不够再加200分


现在出错不会再弹出对话框提示出错。
只会在IE的状态栏左边有个黄色提示信号

hiflash 2003-02-20
  • 打赏
  • 举报
回复
我再试一试。
meizz 2003-02-20
  • 打赏
  • 举报
回复
我是 win2000 server 测试没有问题呀!!

<select name=subcategoryid>
<option>1
<option>2
<option>3
<option>4
</select>
<input type=button value=ok onclick="alert(document.all.subcategoryid.options.length)">
hiflash 2003-02-20
  • 打赏
  • 举报
回复
两级关联的下拉表

87,996

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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