Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (JS) удаление нескольких элементов из списка / 6 сообщений из 6, страница 1 из 1
16.03.2005, 13:23
    #32963215
_Гость_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(JS) удаление нескольких элементов из списка
По нажатию кнопки я удаляю из списка (список со множественным
выбором), выбранные элементы. Делаю это вот так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
<html>
 <head>
   <script>
     function deleteAnItem(theList) {
        var s1 = document.getElementById(theList);
        for (var i= 0 ; i<s1.options.length; i++){
          if (s1.options[i].selected) {
            s1.options[i]=null;
          }
       }
    }
   </script>
 </head>
 <body>
  <table>
   <tr>
    <td>
     <select name="first" multiple id="first" size="10">
      <option value="1"> 11111111 </option>
      <option value="2"> 22222222 </option>
      <option value="3"> 33333333 </option>
      <option value="4"> 44444444 </option>
      <option value="5"> 55555555 </option>
     </select>
    </td>
    <td>
     <input type="button" value="   <<   "  onClick="deleteAnItem('first')">
    </td>
   </tr>
  </table>
 </body>
</html>


Так вот при удалении нескольких выбранных элементов удаляются не все и
в каком то случайном порядке ...
Что я делаю не так ?
...
Рейтинг: 0 / 0
16.03.2005, 14:08
    #32963406
Scey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(JS) удаление нескольких элементов из списка
Дело в том, что при удалении элемента из списка элементы, следующие за удаленным, сдвигаются вверх, а длина списка уменьшается. В результате происходит обход не всего списка.
...
Рейтинг: 0 / 0
16.03.2005, 14:10
    #32963415
Scey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(JS) удаление нескольких элементов из списка
Выход: удаляйте элементы с конца списка
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
function deleteAnItem(theList) {
    var s1 = document.getElementById(theList);
    for (var i=s1.options.length- 1 ; i>= 0 ; i--){
        if (s1.options[i].selected) {
           s1.options[i]=null;
        }
    }
}
...
Рейтинг: 0 / 0
16.03.2005, 14:46
    #32963538
_Гость_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(JS) удаление нескольких элементов из списка
Спасибо
...
Рейтинг: 0 / 0
16.03.2005, 15:04
    #32963603
_Гость_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(JS) удаление нескольких элементов из списка
Есть еще вопрос:
у меня есть 2 списка, одинз из них я наполняю динамически скриптом: нажимаю кнопку, выполняется скрипт - он переносит во второй список выбранные элементы из первого списка:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
function copy(selFrom,selTo){
  var s1 = document.getElementById(selFrom);
  var s2 = document.getElementById(selTo);
  for (var i= 0 ; i<s1.options.length; i++){
      if (s1.options[i].selected) {
          var option = document.createElement("OPTION");
          s2.options.add(option);
          option.value = s1.options[i].value;
          option.text = s1.options[i].text;
      }
  }
}

Проблема возникает в том, что мне по сабмиту формы надо получить значения из второго списка, а мне передается NULL, хотя в списке и есть элементы.
Вот когда я элементы второго списка выделяю - тогда все ОК.
Как исправить ?
...
Рейтинг: 0 / 0
17.03.2005, 06:41
    #32964761
Scey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(JS) удаление нескольких элементов из списка
Весь смысл select'а в том, чтобы передавать по submit'у только те элементы, которые выделены пользователем . Так что либо используйте другой элемент управления, либо определяйте обработчик onSubmit формы вроде этого:
Код: plaintext
1.
2.
3.
4.
5.
6.
function sel (select) {
  var s = document.getElementById(select);
  for (var i =  0 ; i < s.options.length; i++) {
     s.options[i].selected = true;
  }
}
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (JS) удаление нескольких элементов из списка / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]