Javascript.RU

Добавление и удаление элементов из списков

Меня интересует практическое использование JS. Я написал программу для изобретателей "Функционально-стоимостный анализ технических систем" на VB. Немного ознакомившись с JS, понял, что кое-что можно сделать и здесь. Представляю один из этапов ФСА в виде скрипта. Такой скрипт является основой всей программы и нужен на всех ее этапах. Следующий скрипт, который является развитием этого скрипта, смотрите Здесь
С уважением,
invem

<HTML>
<HEAD>
<TITLE>Добавление и удаление элементов из списков</TITLE>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<script type="text/javascript">

function focusElement() {
var elem = document.forms[0].myInput;
elem.focus();
}
function addList(){
valid = true;
document.forms[0].myInput.focus()
var list1 = document.getElementsByTagName('select')[0]; 
var li   = document.createElement('option'); 
/*Запрещение ввода пустой строки */
if (document.forms[0].myInput.value<1)
return valid;
/* Ввод в список из текстового поля */
li.innerHTML =document.forms[0].myInput.value
/* Очистка текстового поля */
document.forms[0].myInput.value=""
list1.appendChild(li); 
}  
</script>
</HEAD>
<BODY onload='focusElement()'>
<form name="form1">
<br /><b>Ввод элементов технической системы</b><br />
<input name="myInput" value= "" size="42"> <br /><br />
<input onclick='addList()' type='button' 
value='Добавить элемент ТС в список'><br />
<input type=button value='Удалить элемент ТС из списка' 
onClick="for(i=0;i<form.elements[3].length;i++)
if(form.elements[3].options[i].selected==true)
form.elements[3].options[i] = null;"><br /><br />
<b>Элементы ТС<br /><br />
<select size="5" multiple id="list1"></<select> 
</form>
</BODY>
</HTML>
0

Автор: Гость (не зарегистрирован), дата: 25 ноября, 2010 - 12:47
#permalink

надо бы изменить:
1. когда поле пустое, то в список ничего добавлять не нужно
2. сначала выбрать из списка удаляемый элемент, а потом удалять


Автор: invem, дата: 26 ноября, 2010 - 22:13
#permalink

Спасибо за замечания.
Ввод пустого списка устранил и выборку сделал. Только через select.


Автор: SergeyT (не зарегистрирован), дата: 18 декабря, 2010 - 03:02
#permalink

Здравствуйте!
Возможно удобнее было бы использовать Google Apps, который позволяет использовать Java.


Автор: Larkin (не зарегистрирован), дата: 7 апреля, 2011 - 16:02
#permalink

Есть один косячек:
при попытке удалить более одного элемента удаление происходит неправильно.

for(i=0;i<form.elements[3].length;i++){
   if(form.elements[3].options[i].selected==true){
      form.elements[3].options[i] = null;
   }
}

в данном коде производится обращение по индексу элемента и потом он "зануляется", но при "заулении" индексация всех элементов меняется, и удление происходит "половинчато", т.е. имея 4-е элемента в списке, и при попыте удалить их все удалится сначала 2-а, потом 1...
решение:

var q = document.forms['form1']['zal[]'].length;
for(i=0; i!=q; i++){
	if(document.forms['form1']['zal[]'][i].selected){
		document.forms['form1']['zal[]'][i] = null;
		i--;
	}
}

при занулении возвращаем инденкс и все удаляется без проблем.


Автор: Гость (не зарегистрирован), дата: 13 апреля, 2022 - 03:58
#permalink

Автор: Гость (не зарегистрирован), дата: 16 апреля, 2022 - 02:26
#permalink

Автор: Гость (не зарегистрирован), дата: 16 апреля, 2022 - 12:18
#permalink

Отправить комментарий

Приветствуются комментарии:
  • Полезные.
  • Дополняющие прочитанное.
  • Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены.
    Для остальных вопросов и обсуждений есть форум.
P.S. Лучшее "спасибо" - не комментарий, как все здорово, а рекомендация или ссылка на статью.
Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешены HTML-таги: <strike> <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <u> <i> <b> <pre> <img> <abbr> <blockquote> <h1> <h2> <h3> <h4> <h5> <p> <div> <span> <sub> <sup>
  • Строки и параграфы переносятся автоматически.
  • Текстовые смайлы будут заменены на графические.

Подробнее о форматировании

CAPTCHA
Антиспам
3 + 1 =
Введите результат. Например, для 1+3, введите 4.
 
Поиск по сайту
Другие записи этого автора
invem
Содержание

Учебник javascript

Основные элементы языка

Сундучок с инструментами

Интерфейсы

Все об AJAX

Оптимизация

Разное

Дерево всех статей

Популярные таги
Последние комментарии
Последние темы на форуме
Forum