怎么你的标题是校验是否有重名,而内容则是判断值是否重复呢?
我按后者说吧:(如果检验的名称,把value该成name即可.
function check(objname) //传入需要校验的名称
{
elems=document.getElementsByName(objname);
for(i=0;i<elems.length;i++)
{
count=0;
elem=elems[i];
val=elem.value;
for(j=0;j<elems.length;j++)
{
if(elems[j].value==elem.val)
count++;
}
if(count>1)
return false;//有重复
}
return true;
}
我按后者说吧:(如果检验的名称,把value该成name即可.
function check(objname) //传入需要校验的名称
{
elems=document.getElementsByName(objname);
for(i=0;i<elems.length;i++)
{
count=0;
elem=elems[i];
val=elem.value;
for(j=0;j<elems.length;j++)
{
if(elems[j].value==elem.val)
count++;
}
if(count>1)
return false;//有重复
}
return true;
}
<input type=text name=h value="fff2">
<input type=text name=h value="fff3">
<input type=text name=h value="fff4">
<input type=text name=h value="fff1">
<input type=text name=h value="fff1">
<input type=text name=h value="fff1">
<Script Language="JavaScript">
///用循环遍历的方法删除重复的元素.
Array.prototype.removerepeat=function()
{
var k = 0,j = 0,n = 0;
var ok = new Array();
for(var i=0;i<this.length;i++)
{
for(j=i+1;j<this.length;j++)
{
if(this[i]==this[j])this[i]=null;
}
}
for(var i=0;i<this.length;i++)if(this[i])ok[k++]=this[i];
return ok;
}function checkTxt()
{
var arr = new Array();
var txt = document.all.h;
var beforeCount=0,afterCount=0;
for(var i=0;i<txt.length;i++)
{
arr[arr.length] = txt[i].value;
}
beforeCount = arr.length;
arr = arr.removerepeat();
afterCount = arr.length;
if(afterCount!=beforeCount)alert('有重复');
}
checkTxt();
</script>
存在同名的对象是很正常的.如果要避免重复,编写(或程序输出)html直接避免即可啦!干嘛还要之后再用script去删?
而且同名对象是很有作用的!同名对象submit后,就可以直接获得一个数组,并且是按html出现的次序的,所以非常便于程序处理!
<BODY>
<input type=text name=h value="fff1">
<input type=text name=h value="fff2">
<input type=text name=h value="fff3">
<input type=text name=h value="fff4">
<input type=text name=h value="fff1">
<input type=text name=h value="fff1">
<input type=text name=h value="fff1"><HR>
<INPUT TYPE="button" VALUE="测试重名" ONCLICK="chk('h')">
<SCRIPT LANGUAGE="JavaScript">
function chk(name)
{
var o = document.all(name);
if (o.length)
{
alert("有 " + o.length + " 个[" + name + "]元素存在");
}else
{
alert("只有一个[" + name + "]元素存在");
}
}
</SCRIPT>
</BODY>
<input type=text name=h value="fff1">
<input type=text name=h value="fff2">
<input type=text name=h value="fff3">
<input type=text name=h value="fff4">
<input type=text name=h value="fff5">
<input type=text name=h value="fff7">
<input type=text name=h value="fff7"><HR>
<INPUT TYPE="button" VALUE="测试重名" ONCLICK="chk('h')">
<SCRIPT LANGUAGE="JavaScript">
function chk(name)
{
var o = document.all(name);
var a = new Object;
for (var i=0; i<o.length; i++)
{
if (a[o[i].value] != null)
{
alert(o[i].value + " 重复");
return;
}else
a[o[i].value] = true;
}
alert("没有重复值");
}
</SCRIPT>
</BODY>