Использование jQuery для проверки соответствия 2 полей адреса электронной почты

#jquery #wordpress

#jquery #wordpress

Вопрос:

Я пытаюсь использовать jQuery в форме WordPress, чтобы проверить, совпадают ли 2 поля электронной почты перед отправкой формы. Код, который я написал, похоже, не работает. Любая помощь будет высоко оценена:

Имя формы regform , а поля вызываются email и confirmemail

 jQuery(document).ready(function($) {
  $("#regform").submit(function(e) {
    removeFeedback();
   
    var errors = validateForm();
    if (errors == "") {
      return true;
    } else {
      provideFeedback(errors);
      e.preventDefault();
      return false;
    }
  });

  function validateForm() {
    var errorFields = new Array();

    //check email addresses match
    if ($('#email').val() != $('#confirmemail').val()) {
      errorFields.push('confirmemail');
    }
    return errorFields;
  }

  function provideFeedback(incomingErrors) {
    for (var i = 0; i < incomingErrors.length; i  ) {
      $("#"   incomingErrors[i]).
      addClass("errorClass");
      $("#"   incomingErrors[i]   "Error").
      removeClass("errorFeedback");
    }
    $("#errorDiv").html("Errors encountered");
  }

  function removeFeedback() {
    $("#errorDiv").html("");
    $('input').each(function() {
      $(this).addClass("errorFeedback");
    });
  }
});
 

Ответ №1:

validateForm возвращает массив, поэтому errors == "" никогда не будет true. Чтобы проверить, содержит ли массив какие-либо данные, вы можете использовать length :

 $("#regform").submit(function(e) {
  removeFeedback();

  var errors = validateForm();
  if (errors.length > 0) {
    e.preventDefault();
    provideFeedback(errors);
  }
});