Удалить проверку на основе имени на основе 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>
Как вы можете видеть, этот элемент НЕ имеет класса имени пользователя, но проверка отступает от использования атрибута имени, если класс отсутствует.
Я хочу использовать классы ТОЛЬКО для проверки.
Благодарю.
3 ответа
Используйте встроенный 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")
}
});
});
Что если вы используете конкретное имя класса только для проверки? Что-то, что отличается от name
?
Например: validatable-username
(Не должно быть так долго, но вы поняли мою идею)
Тогда это не может вернуться к названию.
- Просто загрузите источник, например, http://ajax.aspnetcdn.com/ajax/jquery.validate/1.10.0/jquery.validate.js, а затем,
- Сделать поиск заменить слово
name
и заменить его другим атрибутом, напримерvalidate_on
- Используйте этот новый источник вместо старого.