Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Проверка input.value (https://javascript.ru/forum/dom-window/54493-proverka-input-value.html)

NO_ONE 19.03.2015 16:10

Проверка input.value
 
Привет. Хочу создать простенький черный список email-адресов, чтобы value в форме проверялось на содержание запрещенных доменов из массива. Написал такой скрипт:

<!DOCTYPE HTML>
<html lang="ru">
  <head>
    <meta charset="utf-8">
    <title>Hi!</title>
  </head>
  <body>
      <script>
        function checker() {
          var emailValue = document.getElementById("email").value;
          var blackList = [ "@yandex.ru", "@mail.ru", "@test.ru"]; // для примера запрещаем любые адреса, оканчивающиеся на @yandex.ru, @mail.ru и @test.ru
          for(var i=0; i<blackList.length; i++) {
            if(emailValue.indexOf(blackList[i]) != -1) {
              alert("Нельзя использовать этот ящик.");
              return false;
            }
            else {
              return true;
            }
          }
        }
      </script>
    <form action="" onsubmit="return checker();">
      <input type="text" name="email" id="email" />
      <button type="submit">Ok</button>
    </form>
  </body>
</html>


Однако я в нем явно делаю что-то неправильно, потому что работает он только для первого значения из массива. Поправьте, пожалуйста, чтобы работало для всех.
Благодарю за ответы.

рони 19.03.2015 16:16

NO_ONE,
<!DOCTYPE HTML>
<html lang="ru">
  <head>
    <meta charset="utf-8">
    <title>Hi!</title>
  </head>
  <body>
      <script>
        function checker() {
          var emailValue = document.getElementById("email").value;
          var blackList = [ "@yandex.ru", "@mail.ru", "@test.ru"]; // для примера запрещаем любые адреса, оканчивающиеся на @yandex.ru, @mail.ru и @test.ru
          var ok = true;
          for(var i=0; i<blackList.length; i++)
          if(emailValue.indexOf(blackList[i]) != -1) ok = false ;
          !ok && alert("Нельзя использовать этот ящик.");
          return ok
        }
      </script>
    <form action="" onsubmit="return checker();">
      <input type="text" name="email" id="email" />
      <button type="submit">Ok</button>
    </form>
  </body>
</html>


Часовой пояс GMT +3, время: 09:03.