用js突出显示选择菜单
Highlighting select menu with js
我有多个选项供用户选择。我需要防止重复并提醒用户他们的重复。我不知道我是否需要使用不同的id,或者我可以对所有的选择只使用一个id。我需要重复的选择来提醒红色。
<form method="post" action="">
<select name="drop1" id="drop1" onchange="checkDropdowns()">
<option value=" " selected="selected"> </option>
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
<option value="4">Four</option>
<option value="5">Five</option>
<option value="6">Six</option>
<option value="7">Seven</option>
<option value="8">Eight</option>
<option value="9">Nine</option>
</select>
<select name="drop2" id="drop2" onchange="checkDropdowns()">
<option value=" " selected="selected"> </option>
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
<option value="4">Four</option>
<option value="5">Five</option>
<option value="6">Six</option>
<option value="7">Seven</option>
<option value="8">Eight</option>
<option value="9">Nine</option>
</select>
<select name="drop3" id="drop3" onchange="checkDropdowns()">
<option value=" " selected="selected"> </option>
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
<option value="4">Four</option>
<option value="5">Five</option>
<option value="6">Six</option>
<option value="7">Seven</option>
<option value="8">Eight</option>
<option value="9">Nine</option>
</select>
<select name="drop4" id="drop4" onchange="checkDropdowns()">
<option value=" " selected="selected"> </option>
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
<option value="4">Four</option>
<option value="5">Five</option>
<option value="6">Six</option>
<option value="7">Seven</option>
<option value="8">Eight</option>
<option value="9">Nine</option>
</select>
这是我的Javascript
function checkDropdowns()
{
var iDropdowns = 4;
var sValue;
var sValue2;
for(var i = 1; i <= iDropdowns; ++i)
{
sValue = document.getElementById('drop' + i).value;
for(var j = 1; j <= iDropdowns; ++j)
{
sValue2 = document.getElementById('drop' + j).value;
if ( i != j && sValue == sValue2 )
{
document.getElementById('drop' + j).style.border = "solid 1px red";
return false;
}
}
}
return true;
}
不确定我做错了什么。欢迎任何帮助
这是我的Fiddle
好的-计划B,我上次写了很多垃圾。这一个使用数组来保存使用过的值,并检查下一个Select的值是否是该数组的成员。必须更简单。。
function checkDropdowns(){
var iDropdowns = 4,
sValue,
used =new Array();
for(var i = 1; i < iDropdowns+1; i++) {
sValue = document.getElementById('drop' + i).value;
if (sValue && used.indexOf(sValue)!==-1) {
document.getElementById('drop' +i).style.backgroundColor="#cc0000";
}
else {
used.push(sValue);
document.getElementById('drop' +i).style.backgroundColor="#fff";
}
}
}
function checkDropdowns(e){
var dup = false;
document.querySelectorAll("select").forEach(function(s){
if (e != s && e.value == s.value){
dup = true;
}
});
e.style.border = dup ? "1px solid #f00" : "inherit";
}
我会这样做——您需要在每个内联事件调用中传递"this"作为参数。
相关文章:
- Jquerymobile-使用javascript创建选择菜单
- 修复选择菜单时的背景图像
- 选择菜单重置为以前选择的选项
- JQueryUI选择菜单-如何添加更多选项
- 预填充选择菜单
- 使用较少代码隐藏和显示选择菜单内容的更好方法是什么?javascript
- 使用下拉选择菜单高亮显示一行表格单元格
- Jquery选择菜单选项在页面刷新时失败
- 选择菜单,将json列表与单数值进行匹配
- 从选择菜单中使用 jQuery 多次渲染部分
- 使用数组中的选项填充选择菜单
- 更改鼠标悬停在选择菜单上的颜色
- 使用jquery克隆一个选择菜单
- 如何在外部文件中创建选择菜单并将其嵌入到html中以显示菜单
- jQuery:将按钮过滤器转换为选择菜单选项
- 添加<td>在选择菜单JQuery中选择选项时
- 选择菜单后自动关闭切换导航菜单
- SQL生成的选择菜单,根据相关值更新文本框
- 如何动态填充DataTables选择菜单
- 如何将变量中的数据加载到Jquery Mobile中的选择菜单中