@frmax
человек

Валидация своими кривыми руками?

Привет,

Сделал валидацию проверки полей регистрации.
var singup = (function () { 
    var name = $("#name").val();
    var lastName = $("#last-name").val();
    var psw = $("#password").val();
    var email = $("#mail").val();
    
    if(validName(name) && validLastName(lastName) && validEmail(email) && validPsw(psw)){
        $.ajax({
            type: 'POST',
            url: "site/singup",
            data: {"name": name, "lastname": lastName, "psw":psw, 'login':email},
            success: function (data) {
                  alert('successful : ' + data);
                  
              }
          });
    }
});
var validName = (function (val) {
     var rv_name = /^[a-zA-Zа-яА-Я]+$/;
     if(val.length > 3 && val != '' && rv_name.test(val)){
        $("#name").removeClass('error'); 
     }else{
        $("#name").removeClass('error').addClass('error'); 
     }
     
});

var validLastName = (function (val) {
     var rv_name = /^[a-zA-Zа-яА-Я]+$/;
     if(val.length > 3 && val != '' && rv_name.test(val)){
        $("#last-name").removeClass('error');
     }else{
        $("#last-name").removeClass('error').addClass('error');
     }
     
});

var validEmail = (function (val) {
     var rv_email = /^([a-zA-Z0-9_.-])+@([a-zA-Z0-9_.-])+\.([a-zA-Z])+([a-zA-Z])+/;
     if(val != '' && rv_email.test(val)){
        $("#mail").removeClass('error');
     }else{
        $("#mail").removeClass('error').addClass('error'); 
        $(".r-f-pp-l .p-att").html('Пожалуйта, заполните поле email правильно. Пример: myemail@mail.ru');
        return false;
     }
     
});

var validPsw = (function (val) {
     if(val.length > 8 && val != ''){
        $("#password").removeClass('error');
     }else{
        $("#password").removeClass('error').addClass('error');
     }
     
});


Проблема в том что работает очень, странно. Выделается только по одному полю, а я хочу чтоб выделялись все поля которые не соответствуют условиям, и не давало отправлять естественно данные.
  • Вопрос задан
  • 2413 просмотров
Пригласить эксперта
Ответы на вопрос 2
mlnkv
@mlnkv
JavaScript Developer
А почему так
var foo = (function() { /* */ });
почему не так?
function foo () { /* */ }
чем это обосновано???

var regx = {
  name: /^[a-zа-я -]{3,}$/i,
  pass: /\S{8,}/,
  mail: /^([\w\d_.-]){3,}@([\w\d_.-])+\.[\w]{2,5}$/
}

function signup() {
  var el_name = $("#name"),
    el_lname = $("#last-name"),
    el_pass = $("#password"),
    el_mail = $("#mail"),
    data = {
      name: el_name.val(),
      lastname: el_lname.val(),
      psw: el_pass.val(),
      login: el_mail.val()
    };

  el_name.removeClass('error');
  if (!regx.name.test(data.name)) {
    return el_name.addClass('error');    
  }

  el_lname.removeClass('error');
  if (!regx.name.test(data.lname)) {
    return el_lname.addClass('error');    
  }

  el_pass.removeClass('error');
  if (!regx.pass.test(data.psw)) {
    return el_pass.addClass('error');    
  }

  el_mail.removeClass('error');
  $(".r-f-pp-l .p-att").text('');
  if (!regx.mail.test(data.login)) {
    $(".r-f-pp-l .p-att").text('Пожалуйста, заполните поле email правильно. Пример: myemail@mail.ru');
    return el_mail.addClass('error');   
  }

  $.post('site/singup', data, function(resp) {
    alert('successful : ' + resp);
  });
}
Ответ написан
@frmax Автор вопроса
человек
Можно вот так! Буду поля нормально отображаться по проверкам проходят отлично) но данные не отправляются.
постоянный алерт()

var singup = (function () { 
    var name = $("#name").val();
    var lastName = $("#last-name").val();
    var psw = $("#password").val();
    var email = $("#mail").val();
    
    if(!validName(name) && !validLastName(lastName) && !validEmail(email) && !validPsw(psw)){
        alert('где-то накосячил');
    }else{
        $.ajax({
            type: 'POST',
            url: "site/singup",
            data: {"name": name, "lastname": lastName, "psw":psw, 'login':email},
            success: function (data) {
                  alert('successful : ' + data);
                  
              }
          });
    }
});

var singup = (function () { 
    var name = $("#name").val();
    var lastName = $("#last-name").val();
    var psw = $("#password").val();
    var email = $("#mail").val();
    
    if(!validName(name) && !validLastName(lastName) && !validEmail(email) && !validPsw(psw)){
        alert('где-то накосячил');
    }else{
        $.ajax({
            type: 'POST',
            url: "site/singup",
            data: {"name": name, "lastname": lastName, "psw":psw, 'login':email},
            success: function (data) {
                  alert('successful : ' + data);
                  
              }
          });
    }
});
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы