Tengo este formulario con entradas con el mismo nombre pero ids similares (incrementales).jQuery Validar múltiples campos con el mismo nombre
Quiero que el documento a validar si hay un nombre en persona, la edad debe ser obligatorio ..
Lo que sucede ahora es que sólo la primera entrada es obligatoria.
Aquí está mi código:
<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>
tener múltiples cuadros de texto con el mismo nombre es probablemente una mala idea !? –
Encontré aquí en stackoverflow algunas respuestas con la función .each() pero no pude hacerlo funcionar ... En el futuro tendría un número dinámico de "filas", así que preferiría tener el mismo nombre para poder obtener son más fáciles en el lado del servidor –
@ stian.net - No hay problema para repetir los nombres de las entradas, de hecho, es una práctica bastante común para los datos tabulares. Ciertamente no es lo que está creando la dificultad en este caso. – nnnnnn