проверка Email в чистом javascript

239
23 декабря 2017, 07:08

Валидация работает только если без проверки Email, то есть только проверка пустой строки, не могу понять почему не получается добавить проверку Email. Кто знает, подскажите плиз...

function validateModal() { 
  var re = /^(([^<>()[]\.,;:s@"]+(.[^<>()[]\.,;:s@"]+)*)|(".+"))@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}])|(([a-zA-Z-0-9]+.)+[a-zA-Z]{2,}))$/igm; 
 
  if (document.myForm2.Email2.value == "" || !re.test.document.myForm2.Email2.value) { 
 
 
    document.myForm2.Email2.focus(); 
    var elementsEmail2 = document.getElementsByName("Email2")[0]; 
    elementsEmail2.className += " input_error"; 
    elementsEmail2.nextElementSibling.className += " active_error"; 
 
    return false; 
  } else { 
    var elementsEmailOk2 = document.getElementsByName("Email2")[0]; 
    elementsEmailOk2.classList.remove("input_error"); 
    elementsEmailOk2.nextElementSibling.classList.remove("active_error"); 
  } 
  return (true); 
}
<form action="#" name="myForm2" onsubmit="return(validateModal());"> 
  <input class="contact-block__input" type="text" name="Email2" placeholder="Email"> 
  <input class="contact-block__submit sent-order-btn" type="submit" value="Отправить"> 
</form>

Answer 1

Потому, что return true; а не return (true);

function validateModal() { 
  console.clear(); 
  console.log("start validation"); 
 
  var re = /^(([^<>()[]\.,;:s@"]+(.[^<>()[]\.,;:s@"]+)*)|(".+"))@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}])|(([a-zA-Z-0-9]+.)+[a-zA-Z]{2,}))$/igm; 
 
  if (document.myForm2.Email2.value == "" || !re.test.document.myForm2.Email2.value) { 
 
    console.log("not valid"); 
 
    document.myForm2.Email2.focus(); 
    var elementsEmail2 = document.getElementsByName("Email2")[0]; 
    elementsEmail2.className += " input_error"; 
    elementsEmail2.nextElementSibling.className += " active_error"; 
 
    return false; 
  } else { 
    var elementsEmailOk2 = document.getElementsByName("Email2")[0]; 
    elementsEmailOk2.classList.remove("input_error"); 
    elementsEmailOk2.nextElementSibling.classList.remove("active_error"); 
  } 
  console.log("valid"); 
  return true; 
 
}
<form action="#" name="myForm2" onsubmit="return(validateModal());"> 
  <input class="contact-block__input" type="text" name="Email2" placeholder="Email"> 
  <input class="contact-block__submit sent-order-btn" type="submit" value="Отправить"> 
</form>

READ ALSO
Нужно соединить двух братьев в один элемент

Нужно соединить двух братьев в один элемент

Есть два брата, помогите , есть ли метод который с помощью jquery , соединяет их в один братский <ul>

224
Не работает создание объекта с именем через переменную

Не работает создание объекта с именем через переменную

Доброго дня суток всем, у меня не получается создать объект так чтобы имя его свойства было заданное через переменную, вообщем лучше смотреть...

216
Разпознать кактинку с помощью javascript

Разпознать кактинку с помощью javascript

На страницу загружается картинка , есть выделенные области , они канвасом вырезаютсяЗадача - распознать наличие или отсутствие чего либо...

213
Остаток от деления с fmod

Остаток от деления с fmod

Необходимо проверять кратность количества и коэффициентаКазалось, остаток от деления должен быть 0, но нет, выводит некоторое значение

302