我有以下问题。
以下是我的表格
<input type="text" name="email1" />
<input type="text" name="email2" />
<input type="text" name="email3" />
<input type="text" name="email4" />
<input type="text" name="email5" />
我希望所有5个电子邮件ID都不同(唯一),即我不希望用户在所有字段中输入相同的电子邮件ID。
我需要在Javscript
中完成有人可以帮我解决这个问题吗
谢谢,
卡尔蒂克
答案 0 :(得分:0)
for (var i = 1; i < 6; i++) {
for (var j = i+1; j < 6; j++) {
if (document.getElementsByName("email"+i)[0].value ==
document.getElementsByName("email"+j)[0].value) {
alert("Fields "+i+" and "+j+" are equal!");
}
}
}
如果您允许多个字段保持为空,则可能需要添加另一个检查。
答案 1 :(得分:0)
在Javascript中,一个数组可以作为一个堆栈(推/弹),你可以在检查它们尚未进入堆栈后推送新项目。
var emailAddrs = [];
var item;
for(var i = 0; i < 5; i++){
item = document.getElementsByName("email"+i)[0].value;
if(! emailAddrs.contains(item))
emailAddrs.push(item);
}
<强>更新强>
一旦构建了阵列,就可以将其作为执行其他操作的基础。使用数组的length
属性,可以检查数组中的项目数与预期的数量。
您还可以将相同的项目推送到另一个阵列,并使用此信息让用户了解需要更改的内容
更新2
我刚刚意识到我使用的contains方法是通过添加以下代码创建的:
Array.prototype.contains = function(obj) {
var i = this.length;
while (i--) {
if (this[i] === obj) {
return true;
}
}
return false;
}
然后,为每个数组对象创建一个contains
方法。
如果你正在使用jQuery,你也可以$.inArray(value, array)