怎么用javascript控制select里边无重复值

来源:百度知道 编辑:UC知道 时间:2024/06/14 05:44:55
最近做了一个添加IP到一个下拉菜单(SELECT)里边,然后,需要验证下拉菜单里边不能添加已有IP,就是option得text值不能有重复~看一下代码:
<form name="form1">
<select name="sel1" size="4" multiple id="sel1" style="width:210px; height:120px ">
<option value="0">192.168.1.1</option>
<option value="1">192.168.2.2</option>
<option value="2">192.168.3.3</option>
<option value="3">192.168.4.4</option>
<option value="4">192.168.5.5</option>
<option value="6">192.168.6.6</option>
</select>

<input name="addT" value="new ip"><input name="addV" value="new ip value">
<input type="button" onclick="add()">
</form>
<script>
function add(){
var obj;
obj=document.createElement("

//写一个比较好的实现

// 首先定义一个Set"类"
function Set(array)
{
if (array) {
for (var i = 0; i < array.length; i++) {
this.add(array[i]);
}
}
}

Set.prototype.add = function(entry)
{
this[':' + entry] = 1;
};

Set.prototype.remove = function(entry)
{
delete this[':' + entry];
};

Set.prototype.contains = function(entry)
{
return (this[':' + entry] == 1);
};

//使用方法,非常简单!!!!

//创建一个Set对象 ips
var ips = new Set();

//如果网页初始时有ip地址了,那么先把这些地址加到ips中
ips.add('192.168.0.1');
ips.add('192.168.0.2');
.....

//新加的时候做判断
if(ips.contaions('1.2.3.4')){
//already exist.
}else{
//do add
}

//如果有删除操作,相应得删除ips内的记录
ips.remove('1.2.3.4');

// ps. 能不能多给点积分啊 呵呵

fu