powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (JS) удаление нескольких элементов из списка
6 сообщений из 6, страница 1 из 1
(JS) удаление нескольких элементов из списка
    #32963215
_Гость_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По нажатию кнопки я удаляю из списка (список со множественным
выбором), выбранные элементы. Делаю это вот так:
Код: 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
(JS) удаление нескольких элементов из списка
    #32963406
Scey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дело в том, что при удалении элемента из списка элементы, следующие за удаленным, сдвигаются вверх, а длина списка уменьшается. В результате происходит обход не всего списка.
...
Рейтинг: 0 / 0
(JS) удаление нескольких элементов из списка
    #32963415
Scey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Выход: удаляйте элементы с конца списка
Код: 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
(JS) удаление нескольких элементов из списка
    #32963538
_Гость_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо
...
Рейтинг: 0 / 0
(JS) удаление нескольких элементов из списка
    #32963603
_Гость_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть еще вопрос:
у меня есть 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
(JS) удаление нескольких элементов из списка
    #32964761
Scey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Весь смысл 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
6 сообщений из 6, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (JS) удаление нескольких элементов из списка
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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