2015-10-15 5 views
0

Я пытаюсь получить количество выбранных элементов из списка asp с помощью jquery, но не могу понять, как это сделать. вот как это у меня есть на данный момент, но я получаю «Не могу получить длину свойства неопределенной или нулевой ссылки» на свойство selectedOptions. var lb заполняется objectHtmlSelectElement, так, что кажется правый.Получить количество выбранных элементов из списка asp с помощью jquery

function CheckSelectionCount(sender, args) { 
      var lb = document.getElementById(sender.controltovalidate); 
      var count = lb.selectedOptions.length; 
      args.IsValid = count >= 1 && count <= 5; 
} 

Many similar questions средство это, используя селектор в сочетании с: выбранный атрибут, но я думаю, что нужно использовать аргумент отправителя и сохранить его в переменной.

Я уверен, что это будет легко для экспертов здесь! Заранее спасибо

+0

Я не вижу JQuery там. Ошибка означает, что 'selectedOptions' не определено. Где вы его устанавливаете? – epascarello

+0

Теперь, когда вы изменили его, для выбора не выбраноOptions в JavaScript. Следовательно, не определено. – epascarello

+0

http://stackoverflow.com/questions/5866169/getting-all-selected-values-of-a-multiple-select-box-when-clicking-on-a-button-u – epascarello

ответ

1

JQuery, чтобы получить количество

function CheckSelectionCount(sender, args) { 
    var count = $("#" + sender.controltovalidate + " option:selected").length; 
    args.IsValid = count >= 1 && count <= 5; 
} 

Без JQuery

function CheckSelectionCount(sender, args) { 
    var lb = document.getElementById(sender.controltovalidate); 
    var opts = lb.options; 
    var count = 0; 
    for(var i=0; i<opts.length; i++) { 
     if(opts[i].selected) count++; 
    } 
    args.IsValid = count >= 1 && count <= 5; 
} 
+0

Это сработало. Извините, если моя формулировка сбивает с толку, я часто не знаю, как лучше всего говорить, чтобы изобразить проблему. – wizloc

Смежные вопросы