Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   при отображени страницы без перезагрузки не все срабатывает (https://javascript.ru/forum/dom-window/79782-pri-otobrazheni-stranicy-bez-perezagruzki-ne-vse-srabatyvaet.html)

Евгений d 24.03.2020 15:27

при отображени страницы без перезагрузки не все срабатывает
 
Страница создается динамически в зависимости от данных
<script>
        $(window).on('load', function(){
            вызов функции заполнения страницы
        });           
    </script>    
  </head>


Функция заполнения страницы:
{
 $("#divSelect").empty();
...
$.each(countryRows, function(i, val)
        {
            s="<label class='labelRB'><input name='rbCountry' class='rbCountry' id='rbCountry"+val.id+"' type='radio' value='"+val.id+"'>"+val.title_short+"</label>";              
            $("#divSelect").append(s);             
        })

$('input:radio.rbCountry').bind("click", fOnSelectCountry);
$(".rbCountry:first").prop('checked',true);
alert($(".rbCountry:first").attr("id"));
...
}

function fOnSelectCountry()
{
    alert($('input[name=rbCountry]:checked').attr("id"));
....
}


Когда обновляю страницу - все нормально. Но если я закрываю браузер с загруженной страницей на которой выбран 2й radio, а потом браузер запускаю - по алертам идет подтверждение выбора первого 'radio', срабатывает и обработчик для него. А на экране показывает что выбран 2й.

Евгений d 25.03.2020 11:53

Поставлю вопрос по другому.
При открытии раннее закрытой страницы, я программно делаю выбор 1го radio. Как положено, срабатывает его обработчик. А потом (скорее всего из кеша) браузер выставляет старое состояние input-ов (как было на момент закрытия страницы), уже без срабатывания обработчиков события для выбора.
Как это побороть?

ksa 25.03.2020 12:57

Цитата:

Сообщение от Евгений d
Как это побороть?

Для начала сделай тестовый пример, на котором это проявляется... Выложи его тут с инструкциями как такое получить...
Возможно найдутся желающие помочь. ;)

Евгений d 25.03.2020 14:39

Ответ нашел. Решается:
<label><input name='rbCountry' class='rbCountry' autocomplete='off' id='rbCountry"+val.id+"' type='radio' value='"+val.id+"'>"+val.title_short+"</label>


Это баловалось кеширование. Исправило autocomplete='off'
Правда не проверял, для всех ли браузеров это проходит

ksa 26.03.2020 07:29

Цитата:

Сообщение от Евгений d
Ответ нашел.

Создание тестовых примеров помогает в самостоятельном решении многих проблем... ;)


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