我正在使用jQuery驗證來驗證我的表單。問題是我有一個包含多個選擇框(動態數字)的表單,它有一個動態名稱 - >answers[$question['id']]
jQuery驗證插件與多個選擇框
我見過一些腳本,當有一個固定名稱可以使用它來處理所有輸入字段像這樣。
$('#form').validate({
rules: {
"answers[]" = "required"
}
});
但在我的例子中,這是不可能的,任何想法?謝謝!
我正在使用jQuery驗證來驗證我的表單。問題是我有一個包含多個選擇框(動態數字)的表單,它有一個動態名稱 - >answers[$question['id']]
jQuery驗證插件與多個選擇框
我見過一些腳本,當有一個固定名稱可以使用它來處理所有輸入字段像這樣。
$('#form').validate({
rules: {
"answers[]" = "required"
}
});
但在我的例子中,這是不可能的,任何想法?謝謝!
首先,
它不是"answers[]" = "required"
它"answers[]": "required"
通知到位的等號的冒號。
$('#form').validate({
rules: {
"answers[]": "required"
}
});
其次,只用name="answers[]"
分配required
規則的單個字段。
如果你想輕鬆地分配這個規則到多個領域與name="answers[1]"
,name="answers[2]"
,name="answers[3]"
,等等,那麼你就需要做兩件事情之一......
1)聲明required
規則直列...
使用class
:
<input type="text" name="answers[1]" class="required" />
<input type="text" name="answers[2]" class="required" />
<input type="text" name="answers[3]" class="required" />
或與HTML5:
<input type="text" name="answers[1]" required="required">
<input type="text" name="answers[2]" required="required">
<input type="text" name="answers[3]" required="required">
和jQuery:
$('#form').validate(); // initialize the plugin
DEMO#1:http://jsfiddle.net/7JHWf/
2)或動態使用rules()
方法與name
所有字段開始answers
分配規則:
$('#form').validate(); // initialize the plugin
// assign the rules
$('input[name^="answers"]').each(function() {
$(this).rules('add', {
required: true
});
});
DEMO#2:http://jsfiddle.net/7JHWf/1/
多好的答案。就是我在找的東西! – Limon
很好的答案...2)爲我工作..完美 –
您可以通過抓取所有的選擇框或添加特定類給他們,然後通過使用每個()循環只需選擇你感興趣的選擇框:
$('select') or $('select.specificClass').each(function() {}
你不需要知道每個盒子的名稱/ ID以便能夠選擇並循環。您可以使用每個()循環中引用當前項目的值:
$(this).val()
想想正則表達式 –
您有語法錯誤。它是'field:rule',而不是'field = rule'。 – Sparky