Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.12.2009, 18:54   #1
slips
Форумчанин
 
Аватар для slips
 
Регистрация: 28.10.2008
Сообщений: 350
Восклицание Ajax проблема с прокруткой колёсика обьекта Select

Добрый вечер, вопрос собственно следуюший ,
На кленте есть два SELECT в первом страны, во втором города.
В первом выбираю страну , запускается Ajax и заполняется второй(добавляя OPTION)
При быстрой прокрутки колёсика в первом селекте, возникает ошибка создания обьекта.
При медленом всё нормально, Ajax выполняется 100%. А вот формирования значений во втором селекте в этом случае начинает глючить.
Как от этого можно избавиться ?
slips вне форума Ответить с цитированием
Старый 30.12.2009, 19:06   #2
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

Код покажите. Сдаётся мне, что не на то событие вешаете, или ещё что-то такое
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Старый 30.12.2009, 19:15   #3
slips
Форумчанин
 
Аватар для slips
 
Регистрация: 28.10.2008
Сообщений: 350
По умолчанию

Код html
Код HTML:
   <div class="formLine" style='display:none' id='ABCContry'><label for=regContry></label>
         <div class="fromElement" style="text-align:left">
           <select name='SContry' id='SContry' style="width: 200px;" onChange='qRequest(this,&quot;cf97203bb18a7628615d5b2205b51420&quot;);'> <option value="0" selected>Страна :  </option></select>
                 </div>
                 <div class="comments">Выбирите из списка вашу страну.<br /><br /></div>
              </div>
              <div class="formLine" style='display:none' id='ABCSity'><label for=regSity></label>
                 <div class="fromElement" style="text-align:left">
                   <select name='SSity' id='SSity' style="width: 200px;" onChange=''> <option value="0" selected>Город:  </option></select>
                 </div>
                 <div class="comments">Выбирите из списка ваш город.<br /><br /></div>
              </div>
Код JS в qRequest вызывается фукнция
Код HTML:
Функция которая обробатывает результат Ajax 
/*______________________*
 *      Города          *
 *______________________*/
function SelSity(idElement,responseText/*Текст результата*/)
{
 var SityABC  = nodeById('ABCSity');  // нашли контейнер
 var selSity = nodeById('SSity');       // нашли select- country
 selSity.length = 1;
 SityABC.style.display='none';
 if (responseText)
 {
  SityABC.style.display='';
   var arr = Arrayexplode(responseText);
   var i=0,o;
    while (i<arr.length)
    {
     o = document.createElement( "OPTION" );
     o.setAttribute( "value", arr[i].substring(arr[i].indexOf(':')+1,arr[i].length) );
     o.appendChild( document.createTextNode( arr[i].substring(0,arr[i].indexOf(':'))));
     selSity.appendChild(o);
     i++;
    }
    SityABC.style.display='';
   }
 flag=true;
}
slips вне форума Ответить с цитированием
Старый 30.12.2009, 19:17   #4
slips
Форумчанин
 
Аватар для slips
 
Регистрация: 28.10.2008
Сообщений: 350
По умолчанию

Событие onchange
slips вне форума Ответить с цитированием
Старый 31.12.2009, 04:04   #5
slips
Форумчанин
 
Аватар для slips
 
Регистрация: 28.10.2008
Сообщений: 350
Подмигивание Если кому то интересно то решение проблемы было следующее

1. Добавлена функция определения типа браузера
Код HTML:
  function isIE(){
    var browser=navigator.appName;
    if (browser=="Microsoft Internet Explorer"){
     return true;}
   else{
     return false;}
  }
2. Создаём Option в зависимости от типа браузера, как оказалось
document.createElement( "OPTION" ); гараздо долльше делается в ie чем new Option
Код HTML:
for (var i=0; i<arr.length; i++)
 {
   if (isIE()){
        selSity.options[selSity.options.length] = new Option(arr[i].substring(0,arr[i].indexOf(':')),
        arr[i].substring(arr[i].indexOf(':')+1,arr[i].length));
      }
 else{
        var o = document.createElement( "OPTION" );
        o.setAttribute( "value", arr[i].substring(arr[i].indexOf(':')+1,arr[i].length) );
        o.appendChild( document.createTextNode( arr[i].substring(0,arr[i].indexOf(':'))));
        selSity.appendChild(o);
     	// код для всего остального
       }
    }
slips вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В зависимости от выбора в Select изменить значения другого Select Tayfun HTML и CSS 3 18.08.2011 00:05
С# классы проблема с созданием обьекта bondik Общие вопросы .NET 3 25.11.2009 10:02
Select t1.N,t1.FIO,(select t2.acc from t2 where t2.type=1) from t1,t2 mavlon_m SQL, базы данных 2 17.09.2009 15:28
Проблема между функцией и select case Mary-Salta Microsoft Office Access 0 06.07.2009 09:17
Передача значения в <select></select> kkkggg Gamedev - cоздание игр: Unity, OpenGL, DirectX 1 06.09.2007 00:26