我使用具有相同名稱但具有相似(增量)ID的輸入的此表單。jQuery驗證具有相同名稱的多個字段
我希望表單驗證,如果有上者的姓名,年齡必須是強制性..
現在會發生什麼情況是,只有第一個輸入是強制性的。
這裏是我的代碼:
<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>
具有多個文本框同名可能是一個壞主意!? – 2012-01-27 12:23:34
我在這裏找到了一些使用.each()函數的答案,但我無法使其工作..在將來我會有動態數量的「行」,所以我寧願有相同的名稱,所以我可以得到他們在服務器端更容易 – 2012-01-27 12:27:18
@ stian.net - 重複輸入名稱沒有問題,實際上它是表格數據的非常標準的做法。在這種情況下確實不是造成困難的原因。 – nnnnnn 2012-01-27 12:34:14