select选中后唯一性判定及重置实现

本文实现一个小功能:select选中后,判断当前值不与同名select组中所有值冲突,若冲突,提示并还原select值;若不冲突,则完成选择;

逻辑:首先设置一个JavaScript全局变量selectValue,用来存储选中select change之前的值,通过onmouseove中的方法赋值;onchange方法进行值冲突与否的判断。

 

Html:

<select name="select" οnmοuseοver="selectCheck(this,'value');" οnchange="selectCheck(this,'check');">
			<option value="what" selected>what</option>
			<option value="why">why</option>
			<option value="how">how</option>
			<option value="who">who</option>
			<option value="where">where</option>
		</select>
		<select name="select" οnmοuseοver="selectCheck(this,'value');" οnchange="selectCheck(this,'check');">
			<option value="what">what</option>
			<option value="why" selected>why</option>
			<option value="how">how</option>
			<option value="who">who</option>
			<option value="where">where</option>
		</select>
		<select name="select" οnmοuseοver="selectCheck(this,'value');" οnchange="selectCheck(this,'check');">
			<option value="what">what</option>
			<option value="why">why</option>
			<option value="how" selected>how</option>
			<option value="who">who</option>
			<option value="where">where</option>
		</select>


 

JavaScript:

<script type="text/javascript">
			var selectValue="";
			function selectCheck(selectObj,action)
			{
				if(action=="value")
				{
					selectValue=selectObj.value;
				}
				else if(action=="check")
				{
						selectObj.style.backgroundColor="";
						var currentValue=selectObj.value;
						var selects=document.getElementsByName("select");
						for(var i=0;i<selects.length;i++)
						{
							if((selectObj!=selects[i])&&(selects[i].value==currentValue))
							{
								selectObj.style.backgroundColor="red";
								alert("已存在");
								selectObj.value=selectValue;
								break;
							}
						}
				}
			}
</script>


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值