您的位置:寻梦网首页编程乐园JavaScriptJavascript入门到精通
Javascript 入门到精通

第 1 天 第 2 天 第 3 天 第 4 天 第 5 天
第 10 页:在表单元素中应用onchange
作者:Thau!
尝试这个例子并阅读下面的注释:

My favorite animal is ...

注释一个比较复杂的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()
该函数在首部已经作了定义,其参数为- 被选的动
物种类。

首部中我首先定义的几个数组:


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个表单
元素:列表选单。

第2行引入一个新概念:eval()eval()比较奇
特,我们留在以后的课程中讲解。第2行命令的这
些结果是变量the_array将等同于前面所定义的数
组之一。如果the_array_name是"Fish"
the_array
则等同于Fish数组。

第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" 。

注意,当你改变一个选项的文字时,并不能改变选
单的尺寸,所以如果你所改变后的文字很长的话,
其后面的部分可能会被切去。

变通方法是扩展选单的长度:

<option>greyhound      。

注意:我用了一个句号来扩展选单框的长度。这个
办法很管用。

如果你理解了该例子,你对JavaScript的了解就比
较深了。

第1页:第5日课程介绍
第2页:介绍反馈表单
第3页:控制文字域的值
第4页:文字域事件
第5页:反馈表单处理器
第6页:文字域的练习
第7页:复选框
第8页:单选框
第9页:选单
第10页:在选单中应用onchange命令

 



本内容由搜狐网站(www.sohoo.com.cn)提供。