Выделение строки <select> при выборе другого <select>
Как сделать чтобы при выборе значения <select> выделялась соответствующая строка в другом (в третьем, в четвертом и.т.д) списке <select>. Например: Если выбираешь например в списке пункт "Яблоко" соответствующее "Яблоко" из дугих списков выделялись тоже?
Это нужно для массового смена статуса заказов! :yes: Будет очень удобно... |
Должно получится что-то вроде этого,
только при выборе значения главного списка, должны выбираться соответствующие значения у всех списков, а не только у первого после главного... <script type="text/javascript"> var SelectOnChange = function(selected) { var option = document.getElementById('proverka').options[selected.value-1]; option.selected = !option.selected; }; </script> <form> <select onChange="SelectOnChange(this);"> <option value='1'>Яблоко</option> <option value='2'>Груша</option> <option value='3'>Тыква</option> </select> <select id="proverka"> <option value='1'>Яблоко</option> <option value='2'>Груша</option> <option value='3'>Тыква</option> </select> <select id="proverka"> <option value='1'>Яблоко</option> <option value='2'>Груша</option> <option value='3'>Тыква</option> </select> </form> |
|
Цитата:
Не мог ты на примере показать.... А то я не разберусь... |
Цитата:
спрашивай, что непонятно, а не "напишите за меня", показывай свои варианты |
Цитата:
Птому сюда и забрел по поиску.. Надеялся найти помощь... Если чем-то обидел - прости.. Не хотел... |
Цитата:
ну давай попробуем разобраться в SelectOnChange передается главный элемент (переменная selected) каркас выглядит так function SelectOnChange(selected) { // создаем переменную и помещаем в нее следующий элемент while( /* существует следующий элемент */ ) { if( /* текущий элемент - select */ ) { // изменить текущее значение в текущем select } } } var a = 123 // создание переменной a и присваивание ей // 123 (инициализация не обязательна) el.nextSibling // следующий элемент по отношению к // элементу, хранящемуся в переменной el el.nextSibling.nextSibling // можно найти элемент // через 1 от текущего el.selectedIndex // номер option, // выбранного в select el.tagName // название тэга элемента el, // записанное прописными буквами if( el.nextSibling ) ... // если существует // следующий элемент |
Цитата:
|
Цитата:
|
Буду разбираться с наисанным выше кодом.
Завтра отпишу что получилось, а что нет. x-yuri, спасибо за подробный ответ! |
Riim,
ты имеешь ввиду, это можно сделать через таблицу стилей? |
Вот, нормально вроде: http://ejohn.org/blog/getelementsbyc...ed-comparison/
|
Цитата:
Моих 0-х познаний явно будет недостаточно... Потыкал, потыкал... А ничего не выходит...:( The Ultimate getElementsByClassName http://www.robertnyman.com/2005/11/0...tsbyclassname/ function getElementsByClassName(oElm, strTagName, strClassName){ var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName); var arrReturnElements = new Array(); strClassName = strClassName.replace(/\-/g, "\\-"); var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)"); var oElement; for(var i=0; i<arrElements.length; i++){ oElement = arrElements[i]; if(oRegExp.test(oElement.className)){ arrReturnElements.push(oElement); } } return (arrReturnElements) } Dustin Diaz's getElementsByClass http://www.dustindiaz.com/getelementsbyclass function getElementsByClass(searchClass,node,tag) { var classElements = new Array(); if ( node == null ) node = document; if ( tag == null ) tag = '*'; var els = node.getElementsByTagName(tag); var elsLen = els.length; var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)"); for (i = 0, j = 0; i < elsLen; i++) { if ( pattern.test(els[i].className) ) { classElements[j] = els[i]; j++; } } return classElements; } |
Часовой пояс GMT +3, время: 12:33. |