#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);
}
});