请
登录
后使用快捷导航
没有帐号?
注册
登录
注册
快捷导航
首页
论坛
BBS
博客
技术栈
ITPUB学院
名人堂
版主团
搜索
高级搜索
热搜:
oracle
SAP
sap
二维码
dba
Oracle
c++
C++
CRM
银联信息中心
比特币
小额贷款
贷款
crm
ORACLE
项目管理系统
thread
android
python
java
本版
文章
帖子
用户
ITPUB论坛-专业的IT技术社区
»
论坛
›
≡ 开发技术 ≡
›
WEB程序开发
›
JavaScript教程
1 ...
3
4
5
6
7
8
9
10
11
/ 11 页
返回列表
楼主:
keaide
收藏
|
JavaScript教程
[复制链接]
keaide
keaide
当前离线
积分
101
IP卡
狗仔卡
论坛徽章:
456
101
#
楼主
|
发表于 2006-5-28 22:03
|
只看该作者
这是因为选单的元素有一个选项属性,而该属性是选单所
有选项的集合而成的数组。点击change the select然后从
下拉选单从下列选单中查看其选项是否已经被改变。现在
第2个选项应该是*thau*。
除了选项属性,选单还有一项属性叫做selectedIndex。大
笔一个选项被选择后,selectedIndex属性将变成被选项的
数组索引号(序列号)。选择第2个列表选单中的一个选项,
然后检查索引号。记住数组中的第1个选项的索引号是0。
<a href="#" onClick="alert('index is: ' +
window.document.form_1.list_1.selectedIndex);
return false;">check the index.</a>
表单的名称是form_1,列表选单的名称是list_1。
selectedIndex属性值为
window.document.form_1.list_1.selectedIndex。你还可
以将selectedIndex设置如下:
window.document.form_1.list_1.selectedIndex = 1;
并高亮度显示第2个选项。
一旦你得到被选项的索引号,你就可以发现其内容:
var the_select =
window.document.form_1.list_1;
var the_index =
the_select.selectedIndex;
var the_selected =
the_select.options[the_index].text;
selectedIndex属性很有用,但如果有多个选项同时被选中,
会如何呢?有关这方面的内容请阅读multiple selects。
选单元素的处理器为onChange()。当选单发生变化时,则
该处理器被激活。
>>
使用道具
举报
回复
显身卡
keaide
keaide
当前离线
积分
101
IP卡
狗仔卡
论坛徽章:
456
102
#
楼主
|
发表于 2006-5-28 22:04
|
只看该作者
第十页:在选单中应用onchange命令
尝试这个例子并阅读下面的注释:
My favorite animal is ...
dogs fish birds poodle puli greyhound .
注释一个比较复杂的JavaScript程序。首先,我们看看表单
本身:
<form name="the_form">
<select name="choose_category"
onChange=
"swapOptions(window.document.the_form.choose_category.options[selectedIndex].text);">
<option selected>Dogs
<option>Fish
<option>Birds
</select>
<select name="the_examples" multiple>
<option>poodle
<option>puli
<option>greyhound .
</select>
>/form>
该表单有两个元素:一个下拉选单和一个列表选单。下列
选单的处理器调用函数swapOptions()。该函数在首部已经
作了定义,其参数为- 被选的动物种类。
首部中我首先定义的几个数组:
使用道具
举报
回复
显身卡
keaide
keaide
当前离线
积分
101
IP卡
狗仔卡
论坛徽章:
456
103
#
楼主
|
发表于 2006-5-28 22:04
|
只看该作者
var dogs = new Array("poodle","puli","greyhound"
;
var fish = new Array("trout", "mackerel", "bass"
;
var birds = new Array("robin", "hummingbird", "crow"
;
注意这些数组的命名和下拉选单中的命名一致。很快你就会
明白为什么。现在我们看看当下拉选单被改变时被调用的
函数:
function swapOptions(the_array_name)
{
var numbers_select = window.document.the_form.the_examples;
var the_array = eval(the_array_name);
setOptionText(window.document.the_form.the_examples, the_array);
}
该函数的定义包括一个参数:the_array_name。如果打开下
拉选单并选择"Fish" ,则the_array_name就等同于字符串
"Fish"。
函数主体中第1行包括一个变量用于引用第2个表单元素:列
表选单。
使用道具
举报
回复
显身卡
keaide
keaide
当前离线
积分
101
IP卡
狗仔卡
论坛徽章:
456
104
#
楼主
|
发表于 2006-5-28 22:04
|
只看该作者
第2行引入一个新概念:eval()。eval()比较奇特,我们留
在以后的课程中讲解。第2行命令的这些结果是变量the_array
将等同于前面所定义的数组之一。如果the_array_name是
"Fish",the_array则等同于Fish数组。如果你想了解这是
怎么作的,请学习eval。
第3行定义另一个函数setOptionText()。setOptionText()
用于将the_array赋值给列表选单。以下为该函数内容:
function setOptionText(the_select, the_array)
{
for (loop=0; loop < the_select.options.length; loop++)
{
the_select.options[loop].text = the_array[loop];
}
}
该函数有两个参数:对选单元素的引用和一个数组。第1行
设立一个for循环,由于循环所有的选单元素。注意选单元
素的选项属性是该选单所有选项组成的数组。因为它是一个
数组,你可以用长度(length)属性发现数组的元素数目。
第1次循环时,循环变量值是0。循环的主体值为:
the_select.options[0].text = the_array[0];
如果你在下拉选单中选择了"Fish",则the_array[0]就是
"trout",所以该行命令将列表选单中的第1个选项改成
"trout" 。下一次循环时,循环等于1,并且列表选单中第2
个选项则是 "mackerel" 。
使用道具
举报
回复
显身卡
keaide
keaide
当前离线
积分
101
IP卡
狗仔卡
论坛徽章:
456
105
#
楼主
|
发表于 2006-5-28 22:04
|
只看该作者
注意,当你改变一个选项的文字时,并不能改变选单的尺寸,
所以如果你所改变后的文字很长的话,其后面的部分可能会
被切去。
变通方法是扩展选单的长度:
<option>greyhound 。
注意:我用了一个句号来扩展选单框的长度。这个办法很
管用。
如果你理解了该例子,你对JavaScript的了解就比较深了。
使用道具
举报
回复
显身卡
keaide
keaide
当前离线
积分
101
IP卡
狗仔卡
论坛徽章:
456
106
#
楼主
|
发表于 2006-5-28 22:05
|
只看该作者
OVER!
使用道具
举报
回复
显身卡
1 ...
3
4
5
6
7
8
9
10
11
/ 11 页
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册
本版积分规则
发表回复
回帖后跳转到最后一页
浏览过的版块
NoSQL
TOP
技术积分榜
社区积分榜
徽章
团队
统计
知识索引树
积分竞拍
文本模式
帮助
ITPUB首页
|
ITPUB论坛
|
数据库技术
|
企业信息化
|
开发技术
|
微软技术
|
软件工程与项目管理
|
IBM技术园地
|
行业纵向讨论
|
IT招聘
|
IT文档
ChinaUnix
|
ChinaUnix博客
|
ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有
联系我们
未成年人举报专区
京ICP备16024965号-8
北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
快速回复
返回顶部
返回列表