Javascript: чтобы проверить, не совпадают ли поля в форме - PullRequest
0 голосов
/ 18 ноября 2009

У меня следующая проблема.

Ниже приведена форма, которую я имею

<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 идентификаторов электронной почты были разными (уникальными), т.е. я не хочу, чтобы пользователь вводил одинаковые идентификаторы электронной почты во всех полях.

Мне нужно, чтобы это было сделано в Javscript

Может кто-нибудь, пожалуйста, помогите мне с этим

Спасибо,
Картик

Ответы [ 2 ]

0 голосов
/ 18 ноября 2009

В Javascript массив может выступать в качестве стека (push / pop), в который вы можете помещать новые элементы после проверки, что их еще нет в стеке.

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);
    }

UPDATE

Как только вы получите массив, вы можете использовать его в качестве основы для выполнения других операций. Используя свойство length массива, вы можете проверить, сколько элементов в массиве и сколько вы ожидаете увидеть.

Вы также можете поместить идентичные элементы в другой массив и использовать эту информацию, чтобы сообщить пользователю, что нужно изменить

ОБНОВЛЕНИЕ 2

Я только что понял, что метод содержимого, который я использую, создается путем добавления следующего кода:

Array.prototype.contains = function(obj) {
  var i = this.length;
  while (i--) {
    if (this[i] === obj) {
      return true;
    }
  }
  return false;
}

Затем создается метод contains для каждого объекта массива.

Если вы используете jQuery, вы также можете сделать $.inArray(value, array)

0 голосов
/ 18 ноября 2009
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!");
        }
    }
}

Вы можете добавить еще одну проверку, если разрешите нескольким полям оставаться пустыми.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...