Ответ 1
Плагин jQuery Validator не поддерживает несколько полей с одинаковым именем из коробки. Вам нужно будет отредактировать источник плагина, чтобы проверить поля так, как вы хотите.
См. этот ответ на аналогичный вопрос для работы.
У меня есть эта форма с входами с тем же именем, но с аналогичными (инкрементными) идентификаторами.
Я хочу, чтобы форма проверяла, есть ли имя для человека, возраст должен быть обязательным.
Теперь происходит то, что только первый ввод является обязательным.
Вот мой код:
<html lang="en">
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.9/jquery.validate.min.js"></script>
</head>
<body>
<form id="people">
<div class="section">
<input id="person1" name="person" class="person" type="text" placeholder="First Name" />
<input id="age1" name="age" class="age" type="text" placeholder="Age" />
</div>
<div class="section">
<input id="person2" name="person" class="person" type="text" placeholder="First Name" />
<input id="age2" name="age" class="age" type="text" placeholder="Age" />
</div>
<div class="section">
<input id="person3" name="person" class="person" type="text" placeholder="First Name" />
<input id="age3" name="age" class="age" type="text" placeholder="Age" />
</div>
...
<input type="submit" id="submit" name="submit" value="Add" />
</form>
<script type="text/javascript">
$(function(){
$('#people').validate();
$('#submit').click(function(){
$('[id^="person"]').each(function(){
if ($(this).val().length>0){
//alert($(this).val());
//alert($(this).parent().find('.age').val());
$(this).rules('add', {
required: true,
minlength: 2,
messages: {
required: "Specify the person name",
minlength: "Minimum of 2 characters"
}
});
$(this).parent().find('.age').rules('add', {
required: true,
number: true,
messages: {
required: "Must have an age",
number: "Specify a valid age"
}
});
}
});
});
});
</script>
</body>
Плагин jQuery Validator не поддерживает несколько полей с одинаковым именем из коробки. Вам нужно будет отредактировать источник плагина, чтобы проверить поля так, как вы хотите.
См. этот ответ на аналогичный вопрос для работы.
Друзья!
Чтобы проверить текстовое поле с тем же именем, используйте следующее, оно отлично работает для меня. кроме того, нет необходимости объявлять входной параметр как массивы.
Здесь "minVal" - это имя текстового поля. аналогично, для раскрывающегося списка используйте 'document.getElementsByTagName( "select" );'
function validateMinimumVal(){
inp = document.getElementsByTagName("TEXT");
for ( var i = 0; i < inp.length; ++i ) {
if (inp[i].name =="minVal" && inp[i].value==''){
alert('plesae Add a MINIMUM VALUE!!');
return false;
}
}
return true;
}
Надеюсь, это поможет! Джагана
<div class="section">
<input id="person1" name="person[]" class="person" type="text" placeholder="First Name" />
<input id="age1" name="age[]" class="age" type="text" placeholder="Age" />
</div>
<div class="section">
<input id="person2" name="person[]" class="person" type="text" placeholder="First Name" />
<input id="age2" name="age[]" class="age" type="text" placeholder="Age" />
</div>
<div class="section">
<input id="person3" name="person[]" class="person" type="text" placeholder="First Name" />
<input id="age3" name="age[]" class="age" type="text" placeholder="Age" />
</div>
Вы должны добавить квадратные скобки и петлю через массив.