Javascript:检查表单中的字段是否不相同

时间:2009-11-18 10:27:42

标签: javascript comparison

我有以下问题。

以下是我的表格

<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

中完成

有人可以帮我解决这个问题吗

谢谢,
卡尔蒂克

2 个答案:

答案 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)