2013-08-01 1 views
0

У меня есть контактная форма, которую я собираюсь проверить с помощью JS. Я хочу, чтобы функция проходила через все входы и работала, какая из них - это электронная почта, ища ее для символа «@», а затем назначая ее переменной, которую нужно обработать позже.Проверка формы контакта с помощью javascript?

Я инициализировал переменные для каждого окна ввода и назначил их как значения во входном массиве. Я зациклился на них и проверил их на регулярное выражение (простая проверка букв a-z), чтобы убедиться, что у всех есть введенный контент.

Если они соответствуют RegExp, я хочу, чтобы они были переданы в строковый поиск, чтобы найти символ @, чтобы определить, какой из них является входом электронной почты.

Это мой код ниже, но он не работает. Может ли кто-нибудь сказать мне, где я ошибся? Спасибо!

var emailaddress; 
function find_email() { 
     var name = document.getElementById("username"); 
     var email = document.getElementById("email"); 
     var msg = document.getElementById("messagecontent"); 
     var racenum = document.getElementById("racenum"); 
     var input = [name, email, racenum, msg]; 

     for (i = 0; i <= input.length; i++) { 
      var standard_check = /[a-zA-Z0-9]/g; 
      if (input[i].value.match(standard_check)) { 

       var str = input[i].value; 
       str.search("@"); 
       if (str.match("@")) { 
        emailaddress= str; 
       } 
      } 
     } 
    } 
+0

Где вы определяете переменную 'str'? – collapsar

+0

Извините, я пропустил это! Я отредактирую свой вопрос и добавлю его обратно. –

+1

Что вы имеете в виду, если не работаете? Это дает какие-либо ошибки? Это вообще что-то делает? – sdamashek

ответ

0

Проблема с этим кодом является то, что у вас есть для (я = 0; я < = input.length, я ++), который пытается пройти один передать количество элементов в массиве. Избавьтесь от равных, делающих это для (i = 0; i < input.length; i ++), и все должно быть в порядке.

+0

Спасибо! Всегда путайте с петлями ... –

+0

Нет проблем, рад помочь! Фактически, я не заметил ошибку, пока я не поднял консоль и не начал набирать материал, чтобы попробовать. Если вы не привыкли к этому, вы можете попробовать это, нажав f12 в своем любимом браузере, чтобы открыть инструменты для разработчиков (моим фаворитом является Chrome). Консоль также предоставляет полезную информацию, если что-то пойдет не так. Я заметил, что вы ответили на Vacation9, сказав, что это просто не сработало, но когда я это сделал в консоли Chrome, он сказал мне, что значение ввода [i] .value не определено. Затем я понял, что причина, по которой это было неопределенно, заключалась в том, что я был вне моего списка. –

+0

Большое спасибо, я попробую! Мне нужно привыкнуть к использованию таких инструментов, прежде чем я начну рисовать свой код! –