Если вы просто хотите сделать обязательным элемент формы, вы должны добавить класс required
для элемента:
<input type="text" name="name" id="name" class="required" />
Это будет автоматически получено при валидации.
Если вы делаете это только для того, чтобы выяснить, как добавить пользовательское правило, я бы рекомендовал не использовать правило с именем "name" (у меня были проблемы с ним в простом примере). Вот как вы можете добавить пользовательское правило, которое гарантирует, что «имя» состоит только из символов:
$.validator.addMethod("customname", function(value, element) {
var i = /^[A-Za-z]+$/;
return this.optional(element) || (i.test(value) > 0);
}, "Name is required");
$("#sf").validate({
rules: {
name: {
customname: true
}
}
});
Обратите внимание, что внутри объекта rules
необходимо указать другой объект (name
), который определяет правила для этого элемента.
Что касается размещения ошибки в определенном месте, проверьте параметр errorPlacement
:
errorPlacement: function(error, element) {
element.closest("p").prepend(error);
}
Поместит ошибку между меткой и input
.
Вот пример двух в действии: http://jsfiddle.net/andrewwhitaker/7xD2H/