Удалять проверку jQuery на основе имени
Я пытаюсь использовать плагин проверки jQuery для проверки форм, но мне нужно полностью удалить возможность использования атрибута name. Часть моей формы создается динамически на основе увеличиваемого счетчика, и я просто хочу использовать только классы.
Есть ли способ сделать это?
Я реализовал метод addClassRules и добавил все мои классы для каждого поля, но если я удалю класс из поля, он все еще проверяет на основе поля имени.
Это действительно начинает расстраивать.
jQuery.validator.addClassRules({
username: {
required: true,
minlength: 2,
remote: "whatever.php"
}
});
и др.
<div class="control-group">
<label class="control-label" for="username">
<?php echo $entry_username; ?>
</label>
<div class="controls">
<input type="text" class="input-large"
name="username" id="username"
value="<?php echo $username; ?>" required>
</div>
</div>
Как вы можете видеть, этот элемент НЕ имеет класс имени пользователя, но проверка возвращается, чтобы использовать атрибут name, если класс отсутствует.
Я хочу использовать классы ТОЛЬКО для проверки.
Спасибо.
Ответы
Ответ 1
Используйте встроенный метод rules()
, чтобы добавить правила и назначить их class
. См. документацию.
Примечание: вы должны вызывать этот метод после вызова .validate()
.
У меня очень большая форма, где пользователь может динамически добавлять поля. Это точный метод, который я использую, чтобы убедиться, что мои вновь созданные поля также являются частью проверки.
(Если вы удалите class
из input
, он будет не (не может) проверять атрибут name
, потому что атрибут name
не используется нигде внутри .validate()
параметры или правила.)
HTML:
<form id="form">
<input type="text" class="myclass" name="whatever" />
</form>
JQuery
$("#form").validate({
// my options
});
// the following method must come AFTER .validate()
$('#form').find('.myclass').each(function() {
$(this).rules('add', {
required: true,
minlength: 5,
messages: {
required: "Required input",
minlength: jQuery.format("At least {0} characters are necessary")
}
});
});
jsFiddle DEMO
Ответ 2
Ответ 3
Что делать, если вы используете определенное имя класса только для проверки? Что-то, что отличается от name
?
Например: validatable-username
(не обязательно так долго, но вы получите мою идею)
Тогда он не может отступить от имени.