Я имею форму и формирую текстовое поле, которое генерирует динамично использование JSP. И я использую проверку JQuery, но хочу добавить functionlaty для предотвращения дублирующейся записи в форме.
Например.
<form name="myForm" id="myForm">
<input type="text" name="text1" id="text1">
<input type="text" name="text2" id="text2">
<input type="text" name="text3" id="text3">
=
=
N number of form fields
<input type="text" name="textn" id="textn">
</form>
Я хочу проверить, существует ли какое-либо дублирующееся значение, вводимое в текстовое поле с помощью проверки jQuery.
Что-то вроде этого должно работать:
$(function(){
$('input[name^="text"]').change(function() {
var $current = $(this);
$('input[name^="text"]').each(function() {
if ($(this).val() == $current.val() && $(this).attr('id') != $current.attr('id'))
{
alert('duplicate found!');
}
});
});
});
Вкратце, это работает так: всякий раз, когда пользователь вводит что-то в текстовое поле, JQuery просматривает все текстовые поля в форме и сравнивает их значения со значением, которое пользователь только что вошел, если будет найдено повторяющееся значение, предупредить пользователя.
Bug Magnet, ваш ответ не расширяет функциональность проверки jquery. это отдельный сценарий.
Вы можете добиться этого, сделав следующие изменения в jquery.validate.js:
строка 275: добавьте сообщение для уникального метода
messages: {
unique: "This answer can not be repeated.",
строка 744: добавьте новое правило класса для unique
classRuleSettings: {
unique: { unique: true },
и, наконец, строка 899: добавьте новый уникальный метод
methods: {
unique: function (value, element) {
var parentForm = $(element).closest('form');
var timeRepeated = 0;
$(parentForm.find('input:type=text')).each(function () {
if ($(this).val() === value) {
timeRepeated++;
}
});
if (timeRepeated === 1 || timeRepeated === 0) {
return true
}
else {
return false
}
},
теперь, просто когда вы вызываете свою функцию проверки, вы можете использовать уникальный метод вроде этого:
$("#signupForm").validate({
rules: {
firstname: "required",
lastname: "required",
username: {
required: true,
unique: true,
minlength: 2
},