Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Перенос данных (https://javascript.ru/forum/misc/48534-perenos-dannykh.html)

Sakyra 20.07.2014 22:01

Aetae,
по пробовала но скрипт не реагирует не заполняет не один селект :(

Sakyra 20.07.2014 22:22

если я хоть чуть чуть понимаю))) то мне кажется это событие не срабатывает

var selects = document.getElementsByTagName('select'), i = selects.length;
while(i--){
     if(selects[i].onchange){
         selects[i].onchange();
    }
}

Aetae 20.07.2014 22:58

Странно. Этот скрипт должен заменить предыдущий, возможно вы просто его добавили?

Sakyra 20.07.2014 23:02

Aetae,
я заменила на 2 странице это
window.onload = function(){
    if(location.search){
        var txt = JSON.parse( decodeURI( location.search.slice(1) ) );
        var options = document.getElementsByTagName('option'), i = options.length;
        while(i--){
            if(txt.indexOf( options[i].innerHTML.trim() ) !== -1){
                options[i].selected = true;
            }
        }
    }
}


На это

window.onload = function(){
    if(location.search){
        var txt = JSON.parse( decodeURI( location.search.slice(1) ) );
        var selects = document.getElementsByTagName('select'), i = selects.length;
        while(i--){
            if(selects[i].onchange){
                selects[i].onchange(); //искусственно вызываем change
            }
        }

        var options = document.getElementsByTagName('option'), i = options.length;
        while(i--){
            if(txt.indexOf( options[i].innerHTML.trim() ) !== -1){
                options[i].selected = true;
            }
        }
    }
}


не чего не изменяла не редактировала как вы мне посоветовали!

Но если убрать то все начинает работать кроме 3 селекта
var selects = document.getElementsByTagName('select'), i = selects.length;
while(i--){
     if(selects[i].onchange){
         selects[i].onchange();
    }
}

Aetae 20.07.2014 23:08

Тогда напрямую:
window.onload = function(){
    if(location.search){
        var txt = JSON.parse( decodeURI( location.search.slice(1) ) );
        var select = document.getElementById('swF_fl');
        if(select.onchange){
            select.onchange(); //искусственно вызываем change
        } 
        var options = document.getElementsByTagName('option'), i = options.length;
        while(i--){
            if(txt.indexOf( options[i].innerHTML.trim() ) !== -1){
                options[i].selected = true;
            }
        }
    }
}

Sakyra 20.07.2014 23:09

Aetae,
Сейчас попробую также прочтите ЛС :thanks:

Sakyra 20.07.2014 23:17

Aetae,
Работаю первый два селекта 3 по прежнему выдает черточку возможно ли с вами связаться вконтакте или еще где либо? показать вам сайт возможно есть какие то ньюансы? а то боюсь тут ругаться за флуд начнут ;)

Aetae 21.07.2014 00:02

В личку пишите адрес, посмотрю.

Aetae 21.07.2014 01:01

window.onload = function(){
    if(location.search){
        var txt = JSON.parse( decodeURI( location.search.slice(1) ) );
        var selects = [].slice.call(document.getElementsByTagName('select')), //создаём массив из select'ов
            i = selects.length; //количество селестов
        while(i--){ //перебираем все селекты на странице(в лучше наверное перебирать конкретные, чтобы не было коллизий)
            var options = selects[i].getElementsByTagName('option'), //получаем options текущего select
                j = options.length; 
            while(j--){ //перебираем option 
                if(txt.indexOf( options[j].innerHTML.trim() ) !== -1){ //если значение совпадает с одним из переданных в адресе значений
                    options[j].selected = true; //выбираем его
                    $(selects[i]).trigger('change'); //вызываем событие change через библиотеку jquery
                    selects.splice(i,1); //удаляем отработанный select из массива
                    i = selects.length; //чтобы перебор select начался сначала
                    break; //прервыем перебор option
                }
            }
        }
    }
}

Sakyra 21.07.2014 01:17

Aetae,
Спасибо :thanks:


Часовой пояс GMT +3, время: 03:14.