11111,例1
我们在用到下拉列表框select时,需要对选中的<option>选项触发事件,其实<option>本身没有触发事件方法,我们只有在select里的onchange方法里触发。
当我们触发select的双击事件时,用ondblclick方法。
当我们要取得select的选中事件时,用document.all['name'].value来获取,其中name是select的名称。
如果我们要得到select的全部的值就用一个for循环来实现。代码如下:
var vi = document.all['list'].length;
for(var i=0;i<vi;i++){
document.form2.list(i).value; //form2是<form>的名称
}
下面介绍一个特殊情况的解决,由于option本身没有事件,所以我们不能给每个option都添加一个onclick事件。如果需要实现点击不同的option,实现不同的函数时,要怎么办,从value里取值在分析是一种办法,但如果value里的值不确定,我们又不想从value里取值怎么办呢?可以这样解决,给每个option添加一个属性,然后在赋一个值,我们在函数里取到这个属性的值就可以判断执行了。
---------------------------------------------------------------------------------------------
-------------------------------------------------源代码------------------------------------
<select id="pid" οnchange="gradeChange()">
<option grade="1" value="a">选项一</a>
<option grade="2" value="b">选项二</a>
</select>
<script type="text/javascript">
function gradeChange(){
var objS = document.getElementById("pid");
var grade = objS.options[objS.selectedIndex].grade;
alert(grade);
}
</script>
搞定!
22222,例2
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<select onchange="checkRadio(this.value)">
<option value="">请选择</option>
<script>
for (i = 1; i <= 10; i++)
document.write('<option value="' + i + '">' + i + '</option>');
</script>
</select>
<input type="radio" name="level" />轻度(1-3)
<input type="radio" name="level" />中度(4-6)
<input type="radio" name="level" />重度(7-10)
<div id="div3" style="display:none">div3</div>
</body>
</html>
<script >
function checkRadio(v) {
v = parseInt(v) || 0;
var levels = document.getElementsByName('level');
if (v == 0) levels[0].checked = levels[1].checked = levels[2].checked = false;
else if (v <= 3) levels[0].checked = true;
else if (v <= 6) levels[1].checked = true;
else levels[2].checked = true;
}
</script>
执行效果如下:
选择下拉菜单的4,右边对应的的单选按钮会被选中。