JavaScript基本对象

2019-06-03 09:36:17王冬梅




alert(document.forms[0].RadioButtn[0].value);


好,返回的是当前域的值“A”,但是当你选择其他的选项时再单击按钮,你得到的依然是“A”,而不是你所选择的值,还是不太妙。

为了得到选择的选项的值,首先要知道哪个选项被选中了,然后在alert语句中,用那个选中的选项的下标值来正确地引用当前选项的值。也就是说,如果第一个选项被选中,你应该取RadioButtn[0].value,如果第二个选项被选中,你就应该取RadioButtn[1].value,依此类推。 

在JavaScript中,某些类型的域具有selectedIndex属性,代表当前选中选项的数组下标值。然而单选按钮并不是那么幸运,同样,复选框也没能逃脱厄运。要想得到当前选中的单选按钮的值,你必须在RadioButtn数组元素中查找“checked”属性。和LotusScript相比,LotusScript就能像操作其他类型的域一样来取得单选按钮当前被选中的值。这是一件非常麻烦的事,但是,它就是那样的。 

下面是按钮的代码: 



var doc = document.forms[0];

for(i = 0; i < 

doc.RadioButtn.length; i++){

if(doc.RadioButtn.checked){

alert(doc.RadioButtn.value);

break;

}

}


这里马上就出现了几个新概念,让我花点儿时间来解释一下。首先,如果你读过前面那篇文章,你就会知道“var”是在JavaScript里用来声明变量或给变量赋值用的,就好比LotusScript里的“Dim”和“Set”。既然这样,为了避免一遍一遍地输入document.forms[0],我就把document.forms[0]赋给变量doc以备后用: 



var doc = document.forms[0];


下面是循环,循环体中没有代码时的样子如下: 



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

  }


你是不是有点眼花缭乱?我以前每次看到类似这样的代码就眼晕,但是它并不像它看起来那么糟。首先,花括号只是用来包含循环体的。JavaScript的for循环有三个选项: 

1.       计数变量以及它的初始值(i=0); 

2.       如何知道继续循环(i < doc.RadioButtn.length); 

3.       如何累计计数变量(i++)。 

首先是i=0,很简单,我使用了变量i并且它的初始值为0。 

第二部分:i<doc.RadioButtn.length,它可有点儿不太直观。JavaScript的length属性具有不同的使用环境,如果你要检查一个普通文本域的length,比如在表单上的CreatedBy域(document.forms[0].CreatedBy.length),你会发现length是域中文本的字符个数。比如Anonymous,length就是9。对于数组,比如RadioButtn数组,length是数组中元素的个数。不像数组下标那样从0开始,length从1开始。因此,如果RadioButtn数组的最后一个元素下标是3,length的值就是4。在循环中,我让i从0开始计数循环,直到它小于4为止。因此,循环体共循环4次,i的值分别是0,1,2,3,以数组的最后一个元素的下标结束(我承认有点儿混乱)。