楼主: keaide

JavaScript教程

[复制链接]
论坛徽章:
456
ITPUB年度最佳版主
日期:2011-12-28 15:24:18马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14ITPUB年度最佳版主
日期:2014-02-19 10:05:27优秀写手
日期:2013-12-18 09:29:09ITPUB社区千里马徽章
日期:2013-06-09 10:15:34ITPUB年度最佳版主
日期:2013-01-30 17:30:25版主9段
日期:2012-07-03 02:21:03
51#
 楼主| 发表于 2006-8-1 22:53 | 只看该作者
第七页:复选框
 

文字域和文字区域是表单的两种元素。其它的还有复选
框、单选框及下拉菜单。首先我们学习复选框。
复选框的主要属性就是:被选中(checked)。

This checkbox is checked
This checkbox is not checked


如果有一个名为the_form的表单,其中一个复选框的名称
为the_checkbox,你可一看到如果点击该复选框会发生什
么情况:





var is_checked =
window.document.the_form.the_checkbox.checked;

if (is_checked == true)

{

        alert("Yup, it's checked!";

} else {

        alert("Nope, it's not checked.";

}


如果复选框被选中,则复选框的属性为真(true)。
真(true)是JavaScript内置的数据类型,所以你不必
对true添加引号。如果复选框未被选中,则其属性为
假(false),这也是一只内置数据类型。
你还可以设定复选框的属性。以下是设置复选框属性的一
个例子:

Checkbox 1


Click to check Checkbox 1
Click to uncheck Checkbox 1
Click to see the value of Checkbox 1

以下为代码:




<form name="form_1">

<input type="checkbox" name="check_1">Checkbox 1

</form>

<a href="#"
onClick=
"window.document.form_1.check_1.checked=true;
return false;">
Click to check Checkbox 1</a>

<a href="#"
onClick=
"window.document.form_1.check_1.checked=false;
return false;">
Click to uncheck Checkbox 1</a>

<a href="#"
onClick="alert(window.document.form_1.check_1.checked); return false;">
Click to see the value of Checkbox 1</a>


注意我在链接中始终加入了return false,以防止浏览器
刷新页面又回到原来的内容。
复选框的事件处理器是onClick。当某人点击复选框
时,onClick事件处理器即发挥作用。以下为其使用实例。

The Light Switch

该例子中,表单应用了onClick复选框处理器:




<form name="form_2">

<input type="checkbox" name ="check_1"
onClick="switchLight();">The Light Switch

</form>


当某人点击复选框时,onClick处理器被激活并执行函
数switchLight(),以下为函数switchLight() 的编码(它
置于网页首部中):  



function switchLight()

{

        var the_box = window.document.form_2.check_1;

        var the_switch = "";

        if (the_box.checked == false) {

                alert("Hey! Turn that back on!";      

                document.bgColor='black';

        } else {

                alert("Thanks!";

                document.bgColor='white';

        }

        

}


第一行:  



var the_box = window.document.form_2.check_1;


将复选框对象赋值给一个变量。这样可以缩小编程长度,
还可以将对象作为参数传递给函数。  


>>

使用道具 举报

回复
论坛徽章:
456
ITPUB年度最佳版主
日期:2011-12-28 15:24:18马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14ITPUB年度最佳版主
日期:2014-02-19 10:05:27优秀写手
日期:2013-12-18 09:29:09ITPUB社区千里马徽章
日期:2013-06-09 10:15:34ITPUB年度最佳版主
日期:2013-01-30 17:30:25版主9段
日期:2012-07-03 02:21:03
52#
 楼主| 发表于 2006-8-1 22:53 | 只看该作者
第八页:单选框
 

在JavaScript中单选框的用法和复选框是否相似。不同之处
在于HTML中的应用。复选框是一种开关。如果一个复选框被
选中,你可以再点击后取消选取. 但如果单选框被选中,则
只能通过选取另外一个单选框才能取消对该单选框的选取。例:
Larry
Moe
Curly


在该例中,如果你打算取消对对一个单选框的选取,你必须
集电极另一个单选框。用这种概念我们可以用两个单选框的
设为代替一个复写纸的试着发式:

Light off
Light on


表单编码如下:


<form name="form_1">

<input type="radio" name ="radio_1"
onClick="offButton();">Light off

<input type="radio" name ="radio_2"
onClick="onButton();" checked>Light on

</form>


当第一个单选框被选中时,函数offButton() 被调用。函数
如下:  

function offButton()

{

var the_box =
window.document.form_1.radio_1;

       

if (the_box.checked == true)
{
window.document.form_1.radio_2.checked = false;

document.bgColor='black';

alert("Hey! Turn that back on!";       

}

}


这个例子很象前面的复选框例子,主要的区别在于该行:  

window.document.form_1.radio_2.checked = false;


该行指令指示JavaScript在该按钮被点击时关闭另外一个
按钮。由于另外一个按钮的函数同这个很相似:  

function onButton()

{

var the_box = window.document.form_1.radio_2;

if (the_box.checked == true)
{

window.document.form_1.radio_1.checked = false;

document.bgColor='white';

alert("Thanks!";

}

}


>>

使用道具 举报

回复
论坛徽章:
456
ITPUB年度最佳版主
日期:2011-12-28 15:24:18马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14ITPUB年度最佳版主
日期:2014-02-19 10:05:27优秀写手
日期:2013-12-18 09:29:09ITPUB社区千里马徽章
日期:2013-06-09 10:15:34ITPUB年度最佳版主
日期:2013-01-30 17:30:25版主9段
日期:2012-07-03 02:21:03
53#
 楼主| 发表于 2006-8-1 22:54 | 只看该作者
第九页:选单
 

选单是我们所学的表单选项中最奇特的一种。有两种基本的
格式:下列选单和列表选单。以下为例子:
下列选单:
probiscus spider lemur chimp gorilla orangutan

列表选单:
probiscus spider lemur chimp gorilla orangutan

它的奇特之处在于这个选单有名称,但其中的各个选项没有
名称。例如,在HTML中,第1个选单如下:




<select name="pulldown_1" size=1>

<option>probiscus

<option>spider

<option>lemur

<option>chimp

<option>gorilla

<option>orangutan

</select>


注意这个选单的名称是pulldown_1,但各个选项没有名称。
所以要调用其中的各个选项则有点困难。
幸好数组可以帮助我们调用其中的选项。如果你想改变该下
列选单中的第2个选项,你可以这样做:




window.document.form_1.pulldown_1.options[1].text = 'new_text';


这是因为选单的元素有一个选项属性,而该属性是选单所
有选项的集合而成的数组。点击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()。当选单发生变化时,则
该处理器被激活。


>>

使用道具 举报

回复
论坛徽章:
456
ITPUB年度最佳版主
日期:2011-12-28 15:24:18马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14ITPUB年度最佳版主
日期:2014-02-19 10:05:27优秀写手
日期:2013-12-18 09:29:09ITPUB社区千里马徽章
日期:2013-06-09 10:15:34ITPUB年度最佳版主
日期:2013-01-30 17:30:25版主9段
日期:2012-07-03 02:21:03
54#
 楼主| 发表于 2006-8-1 22:54 | 只看该作者
第十页:在选单中应用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()。该函数在首部已经
作了定义,其参数为- 被选的动物种类。
首部中我首先定义的几个数组:



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数组。如果你想了解这是
怎么作的,请学习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" 。

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

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

<option>greyhound      。


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

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

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表