Выделение строки <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, время: 02:58. |