双重警报信息

时间:2017-08-12 19:23:17

标签: javascript jquery validation

我正在尝试使用jQuery进行一些验证。当我为每个字段创建错误时,我在警报中收到2条消息。这是我的jsfiddle

function isEmail(email) {
  var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;
  return regex.test(email);
}


$("#submitButton").click(function(){

      var mesajEroare = "";

      /* verifica daca email-ul este true */
      if(isEmail($("#email").val()) == false) {
        /* arata mesaj eroare */
        mesajEroare += "<p>Email-ul introdus nu este valid</p>";
      }

      /* verificare nr telefon daca este numeric */
      if($.isNumeric($("#telefon").val()) == false){
        /* arata mesaj eroare la telefon*/
        mesajEroare += "<p>Numarul de telefon introdus nu este valid</p>";
      }

      alert(mesajEroare);

});

3 个答案:

答案 0 :(得分:1)

问题是你是否有警报和错误,因为你在外面写了警报功能,你应该使用:

  function isEmail(email) {
      var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;
      return regex.test(email);
  }

  $("#submitButton").click(function(){

  var mesajEroare = "";
  var fieldMissing = "";

  if($("#email").val() == ""){
    fieldMissing += "<p>email</p>";
  } else if (isEmail($("#email").val()) == false) {
    mesajEroare += "<p>Email-ul introdus nu este valid</p>";
  }

  if($("#telefon").val() == ""){
    fieldMissing += "<p>telefon</p>";
  } else if ($.isNumeric($("#telefon").val()) == false){
    mesajEroare += "<p>Numarul de telefon introdus nu este valid</p>";
  }

  if($("#password").val() == ""){
    fieldMissing += "<p>parola</p>";
  }

  if($("#passwordConfirma").val() == ""){
    fieldMissing += "<p>confirma parola</p>";
  } else if($("#password").val() != $("#passwordConfirma").val()){
    mesajEroare += "<p>Parola nu este la fel</p>";
  }

  if(fieldMissing != ""){
    mesajEroare += "Nu ati completat urmatoarele casute" + fieldMissing;
  }

  if (mesajEroare != "") { // if found an error or more
    console.log(mesajEroare);
  }

});

答案 1 :(得分:1)

对于稍微不相关的答案道歉,但是,如果您想要有多个错误消息,可能您想使用换行符而不是<p>标记。

$('#submitButton').click(function () {
    var message = '';

    if (!isEmail('notAnEmail')) {
        message += 'Email not valid\n';
    }

    if (!$.isNumeric('boom')) {
        message += 'Phone number not valid\n';
    }

    if (message) {
        alert(message);
    }
});

如果您确实一次只想要一个错误,并且使用=而不是+=,则只会在警报中收到最后一条错误消息。

答案 2 :(得分:0)

您的代码中的问题是您附加字符串,这意味着如果条件为mesajEroare = "",则初始字符串true最终会有两个字符串。

根据您的需要,您应该只使用=代替+=