У меня небольшие трудности с некоторыми JS.
У меня есть список, в котором я хочу выбрать не более 10 элементов. Трудность, с которой я столкнулся, заключается в том, что если множественное выделение выполняется с помощью перетаскивания мышью, событие onClick не запускается, поэтому мне приходится использовать onChange.
НО, с onChange - я не могу выбрать последний выбранный вариант, потому что я думаю, что DOM не поддерживает его в этом событии. Вот пример:
HTML:
<select id="mylist"><option>Test</option>
<option>Test</option>
<option>Test</option>
<option>Test</option>
</select>
JS:
Event.observe('mylist', 'change', checkList);
function checkList(e)
{
var count = 0;
var listObj = this;
// Count selected items
for (i=0; i < listObj.options.length; i++) {
if (listObj.options[i].selected) {
count++;
}
}
// If the count is over, tell me the last selected item
if (count > 10) {
var e = e || window.event;
var tgt = e.target || e.srcElement;
alert(tgt.nodeName + ' Index:' + tgt.index);
}
}
Если я использую событие onClick
, я получаю, например, «OPTION - Index 1». Но используя onChange
, я получаю вместо этого узел SELECT.
Есть ли способ, которым я могу надежно получить доступ к нажатой опции?