Я пытаюсь реализовать пользовательский валидатор в JavaScript для моей страницы vb.net. Этот валидатор должен проверить, нет ли в списке многозадачности выбранных значений, показывая, что ошибка появляется, если это так.
Дело в том, что я хочу сделать это на стороне клиента, но в моей функции validateFunction я получаю только последний выбранный (или не выбранный, если он уже выбран) элемент. Я знаю, как это сделать с кодом кода, но я хочу сделать это на стороне клиента.
код aspx:
<asp:ListBox ID="lbEdit" runat="server" SelectionMode="Multiple">
</asp:ListBox>
<asp:CustomValidator id="cvEdit" runat="server" Display="None" ControlToValidate="lbEdit" ClientValidationFunction="validateFunction"/>
<ajax:ValidatorCalloutExtender runat="server" ID="vceEdit" TargetControlID="cvEdit" />
Код JavaScript:
function validateFunction(source, arguments) {
var options = document.getElementById(source.controltovalidate).options;
for (var i = 0; i < options.length; i++) {
if (options[i].selected == true) {
args.IsValid = true;
return;
}
}
args.IsValid = false;
}
Как я уже сказал, поскольку последний (un) выбранный элемент будет единственным, выбранным в массиве "options", функция проверки всегда вернет true...
Я думал о заполнении другого массива в другой функции javascript как "истинный выбранный массив" и сравнивать его значения с выбранным параметром каждый раз, когда срабатывает функция. но я думаю, что должен быть лучший способ.
Итак... Есть ли прямой способ получить ВСЕ выбранные элементы из многозадачного списка в javascript?