На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: ElcnU, ANDLL, fatalist
  
> Изменение содержимого элемента <SELECT> , на JS
    Сформировать элемент SELECT - не тяжело:
    ExpandedWrap disabled
       
      document.write('<SELECT>');
      document.write('<OPTION Name1="Item1" Value="Vasya">');
      ...
      document.write('</SELECT>');


    Но как мне изменять количество итемов этого элемента? Удалять существующие и добавлять новые? Примерчик дайте, плиз, простенький

    Добавлено
    А ещё лучше: как формировать SELECT в тот момент когда не нём кликают?
    Что-то такое, наверное:
    ExpandedWrap disabled
       
      <SELECT NAME="sel0" onClick="zapolnit('sel0');return true;"></SELECT>

    Но как составить функцию zapolnit?

    Данные для селекта находятся в массиве:
    ExpandedWrap disabled
       
      var data=new Array();
      data = [ [1,"Oleg"] [2,"Pavel"] [3,"katya"] ];
    Сообщение отредактировано: Budda -
        Mixxx, указанный линк сильно помог.

        Иду дальше:

        Суть задачи такая:
        сущ-т массив возможных позиций игрока на поле:
        var pos=[ "GK", "LD", "CD",....."CF" ];
        Сущ-т 11 селектов, для каждого можно выбрать любую позицию из тех, что ещё не используются.

        Как это лучше сделать?

        Изначально выбраны какие-то позиции по-умолчанию.
        Я бы хотел нужно формировать содержимое селекта в момент клика на нём (добавлять неиспользованные позиции), сразу же показывать новый список, а после выбора итема - убирать лишние позиции, а оставить только выбранную...

        Вот только
        ExpandedWrap disabled
          <SELECT NAME="selPos1" onClick="showPosLeft(this);return(true)"></SELECT>

        ExpandedWrap disabled
           
          function showPosLeft( selN )
          {
              for ( i=2 ; i<pos.length ; i++ )
              {
                  var bFounded=false;
                  for ( j=0 ; j<11 ; j++ )
                  {
                      if ( i==MP[j][0] )
                      {
                          bFounded=true; // позиция используется
                          j=11;
                      }
                  }
                  if ( bFounded == false )
                  {
                      var itemNum=selN.options.length++;
                      selN.options[itemNum].text=pos[i];
                      selN.options[itemNum].value=i;
                  }
              }
          }

        Этот код формирует список, который сразу же закрывается и не даёт возможность выбрать элемент... Как побороть проблему?

        Второй вариант: забить все селекты всеми свободными позициями, а при выборе в одном из них новой позиции обработать все другие селекты так, чтобы только что выбранная позиция в них исчезла, а освобождённая появилась...

        Как вы считаете, какой метод лучше?
          Цитата
          Как побороть проблему?

          Формируйте его по событию onmouseover
            Mixxx, идея неплоха, как только я сам не додумался...
            Только вот, когда один из селектов уже открыт перемещение мышки над другими не приводит к генерации события onMouseOver - и следовательно содержимое селектов - не обновляется.. :(
            0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
            0 пользователей:


            Рейтинг@Mail.ru
            [ Script execution time: 0,0273 ]   [ 15 queries used ]   [ Generated: 2.05.24, 15:47 GMT ]