/ / JQuery Validate - Потвърждаване на валидирането на формуляра за имейл - jquery, jquery-валидация

JQuery Validate - Потвърждаване на валидацията на формата по имейл - jquery, jquery-validate

Имам тест и трябва да добавя валидиране към a confirm email address поле, като цяло просто трябва да съвпада с имейл адреса, даден в горното поле. Използвам следния JavaScript, мога ли да добавя нещо тук, което ще се увери, че имейлите съвпадат?

if ($("#mtQuiz").length > 0) {
$("#myQuiz").validate({
errorElement: "em",
errorContainer: $("#warning"),
rules: {
"entry[first_name]":            "required",
"entry[last_name]":     "required",
"entry[email]": {
required: true,
email: true
},
"entry[confirm_email]": {
required: true,
email: true
}
},
messages: {
"entry[first_name]":    "Please enter first name",
"entry[last_name]": "Please enter last name",
"entry[email]": {
required: " Please enter a valid email address",
minlength: "Not a valid email address"
},
"entry[confirm_email]": {
required: " Please make sure email matches above",
minlength: "Does not match above email address"
}
}
});
}

Отговори:

6 за отговор № 1
if ($("#mtQuiz").length > 0) { // <- unnecessary and superfluous
$("#myQuiz").validate({
// options, etc.
});
}

Използвате jQuery, така че не е необходимо да проверявате за съществуването на #myQuiz с if ($("#mtQuiz").length > 0), Ако #myQuiz елемент не съществува, jQuery просто ще го игнорира без никакви грешки.

Това е всичко, което трябва да направите ...

$("#myQuiz").validate({  // initialize the plugin
// options, etc.
});

За да съответствате на стойността на друго поле, просто използвайте на equalTo правило, Докато използвате equalTo правило, оттогава не е необходимо да се дублира нито едно от другите правила equalTo винаги ще принуди стойността да съответства на стойността на основното поле, която вече следваше правилата му.

$("#myQuiz").validate({
// options, etc.,
rules: {
"entry[first_name]": "required",
"entry[last_name]": "required",
"entry[email]": {
required: true,
email: true
},
"entry[confirm_email]": {
//required: true,  // <- redundant, not needed with "equalTo"
//email: true      // <- redundant, not needed with "equalTo"
equalTo: "[name="entry[email]"]" // <- any valid jQuery selector
}
},
// other options, etc.
});

ДЕМОНСТРАЦИЯ: http://jsfiddle.net/JCY2E/


2 за отговор № 2

Погледнете равна на метод.

$("#myQuiz").validate({
...
rules: {
...
"entry[confirm_email]": {
equalTo: "entry[email]"
}
}
});