Я столкнулся с вопросом о том, как правила применяются при проверке jQuery.Правила проверки правильности jquery применяются, даже если вход не установлен по необходимости
Если объявлено правило для FirstName, проверка jQuery приведет к ошибке проверки для этого поля, даже если вход не имеет необходимого набора атрибутов.
Я запускаю проверку как вложенную функцию в плагине форматирования формы jQuery. Плагин генерирует форму на основе данных json, полученных от marketo. Причина вложения проверки заключается в том, что валидация нескольких форм на нескольких доменах может управляться одним сценарием.
Причина, по которой я запрашиваю, как я могу запретить запуск правил, требуемый атрибут не применяется к полю формы, из-за того, как marketo выводит формы и имена форм.
Пример формы:
<form action="" id="form" method="post">
<div class="formrow">
<label for="FirstName">First name: </label>
<input type="text" name="FirstName" id="FirstName">
</div>
<input type="submit" value="submit">
</form>
Пример проверки:
$('#form').validate({
rules: {
FirstName: {
required: true
}
},
messages: {
FirstName: "Please enter your name"
},
submitHandler: function (form) {
$(form).ajaxSubmit({
error: function (response) {
console.log(response);
},
success: function (response) {
console.log(response);
}
});
},
errorElement: "em",
errorPlacement: function (error, element) {
error.appendTo(element.closest(".formrow").children("label"));
}
});
Я собрал демо, чтобы показать проблему.
http://jsfiddle.net/onebitrocket/dzv5ugo0/
Спасибо, но это будет работать только для одной формы. Мне нужно обходное решение, поэтому я могу использовать один код проверки, основанный на разных формах, где всегда будут не все поля - один из вариантов, который я могу придумать, - полностью удалить правила для всех форм, это, похоже, хорошо работает. Другим было бы динамическое генерирование правил и сообщений проверки на основе данных json, предоставленных marketo. Интересно, возможно ли это? – onebitrocket