Показать сообщение отдельно
  #13 (permalink)  
Старый 14.08.2015, 20:21
Интересующийся
Отправить личное сообщение для oneplus Посмотреть профиль Найти все сообщения от oneplus
 
Регистрация: 25.05.2015
Сообщений: 24

Прошу прощение, действительно не информативно.
var mat=document.getElementById("vl_mat_id"),//первый список - материалы
    sor=document.getElementById("vl_sort_id"),//второй список - выборка
    tex=document.getElementById("vl_tex_id"),//третий список - фактура
    tex_c=tex.cloneNode(true),
    tex_co=tex_c.getElementsByTagName("option"), 
//тех_цо-клонированный список фактуры
    sp, spc;//спц-клонированный список новосформированного
//функция при выборе материала
function f() {
//класс материала
  var m=mat.options[mat.selectedIndex].className;
//удаляем список
  while (tex.options.length) {tex.remove(0)};
//возвращаем список с нужным классом
  for (var i=0; i<tex_co.length;i++) {  
  if (tex_co[i].className.match(m)) {
    tex.appendChild(tex_co[i].cloneNode(true));
//записываем список для дальнейшего использования
    sp=tex_co[i].cloneNode(true);
    spc=sp.getElementsByTagName("option");
  };  
  }
}
mat.onchange=f;
//функция для работы второго списка-выборки
function p() {
//класс выборки или сортировки
  var f=sor.options[sor.selectedIndex].className;
//удаляем старый список
  while (tex.options.length) {tex.remove(0)};
//возвращаем нужный список из ранее сохраненного
  for (var i=0; i<spc.length;i++) {
  if (spc[i].className.match(f)) {tex.appendChild(spc[i].cloneNode(true))};
  }
}
sor.onchange=p;
Ответить с цитированием