Итак, ситуация такова: попытка добавить выпадающий список с помощью плагина jquery.multiselect в форме, которая в данный момент использует плагин jquery.validate , который имеет другие поля (текстполя ввода, одиночный текстовый ввод, который имеет float
диапазон значений), которые в настоящее время проверяются корректно.
Когда я пытаюсь добавить правила проверки, я просто не могу получить jquery.validate для проверки моего выпадающего списка с несколькими выборками.Вот фрагменты моего кода (все предполагают, что загружены необходимые плагины - см. Ниже используемые версии):
HTML:
<form action="some/action" id="myForm" method="POST">
Input 1: <input type="text" value="" name="input1" maxlength="200" id="input1"><br/>
Input 2: <input type="text" value="" name="input2" maxlength="100" id="input2"><br/>
Input 3: <input type="text" value="" name="input3" maxlength="50" id="input3"><br/>
Select: <select class="someSelect" name="mySelect" id="mySelect" multiple="multiple">
<option value="some_val1">Some Value</option>
<option value="some_val2">Some Other Value</option>
</select>
<input type="submit" value="Submit" />
</form>
Javascript:
$(document).ready(function() {
$('#mySelect').multiselect({
noneSelectedText: 'Select Something (required)',
selectedList: 3,
classes: 'my-select'
});
$.validator.addMethod("needsSelection", function(value, element) {
return $(element).multiselect("getChecked").length > 0;
});
$.validator.addMethod("isPercent", function(value, element) {
return parseFloat(value) >= 0 && parseFloat(value) <= 100;
});
$.validator.messages.needsSelection = 'You gotta pick something.';
$.validator.messages.isPercent = 'Must be between 0% and 100%';
$('#myForm').validate({
rules: {
mySelect: "required needsSelection",
input1: "required isPercent",
input2: "required",
input3: "required"
},
errorClass: 'invalid'
});
});
Версии Если есть явная / известная проблема с совместимостью между версиями, тогда я могу обновить, если это решит проблему, но я протестировал, используясамые новые версии для моих целей, и это, похоже, не решило мою проблему.
jQuery : 1.4.4
jquery.validate : 1.9.0
jquery.multiselect : 1,8
И, как всегда, я могу предоставить больше информации, где это возможно / необходимо.