2015-07-22 14 views
2

Я научился делать регистрационную форму, и я планирую проверить два значения (адрес электронной почты и пароль) и использовать его как условие true или false.Проверка ввода формы перед отправкой формы

У меня есть подобный код

function userValid(email) { 
    var usr = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$\i/ ; 
    return usr.test(email);  
    }; 

    function passValid(password) { 
    var passw = /^[A-Za-z]\w{7,14}$/; 
    return passw.test(password);    
    }; 

код выше его использовать для проверки электронной почты и пароля в моей форме, и я думаю, что если я передавая значение этой функции (например, проходящего значение по электронной почте userValid() функция), он вернет true/false.

Я планирую создать валидирующую форму или форму для входа, которая сначала проверит адрес электронной почты пользователя &, чтобы быть действительным до того, как я отправлю (скажем, на сервер).

и я думаю, что логика такова:

  1. , если оба значения ИСТИНА, то Войти Успех
  2. , если один из значений TRUE, то Войти Failed
  3. , если оба значения ЛОЖЬ, то Войти Не удалось
  4. еще (значение должно быть пустым или NULL), то пожалуйста Вставить E-mail и пароль

и так далее

Мой вопрос в том, как создать условный оператор с ВЫШЕ корпусом, и, конечно же, в JAVASCRIPT :) спасибо.

+0

Не ограничивайте TLD до 6 символов –

ответ

1

Я не знаю, как вы Acces адрес электронной почты и пароль, но это должно работать, если вы заполняете те, в.

if (userValid(email) == true && passValid(password) == true) { 
    //Login succes code 
} 
else if (userValid(email) == false || passValid(password) == false){ 
    //Login failure code 
} 
else { 
    //The "Please insert" code 
} 

&& operater (и) возвращает истину, только если оба значения являются истинными.

Оператор || (или) возвращает true, если хотя бы одно из значений истинно.

Возможно, это будет сделано легче, но это должно сработать так.

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

0

Так что вы хотите создать функцию, которая будет вызываться, когда пользователь попытается отправить вашу форму. Если эта функция возвращает false, форма не будет отправлена. В противном случае он отправляет форму. Вы могли бы написать это следующим образом:

var yourForm = document.getElementById("yourForm"); 
var yourEmail = document.getElementById("yourEmail"); 
var yourPassword = document.getElementById("yourPassword"); 
var yourWarningLabel = document.getElementById("yourWarningLabel");  

yourForm.onsubmit = function() { 
    if (yourEmail.value == "" || yourPassword.value == "") { //Check if the fields have something in them 
     yourWarningLabel.innerHTML = "Please Insert Email and Password"; 
     return false; 
    } else return (userValid(yourEmail.value) && passValid(yourPassword.value)); 
}; 

Где yourWarningLabel является <p>, <label> или другой текстовый тег, который используется для отображения предупреждения.

Двойные трубы || представляют собой оператор OR, что означает, что если электронное письмо пуста или пароль пуст, мы должны отобразить предупреждение.

Двойной амперсанд && представляет собой оператор AND, то есть при прохождении электронной почты И пароль проходит проверку, тогда мы возвращаем true и отправляем форму, иначе она возвращает false.

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