实现 select中指定option选中触发事件

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,右边对应的的单选按钮会被选中。

 

  • 3
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值