С Новым годом! Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
4 / 4 / 2
Регистрация: 01.04.2017
Сообщений: 415

Ограничить число добавляемых элементов

24.05.2020, 19:34. Показов 3502. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребята есть вот такой скрипт-
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<script type="text/javascript">
var countBox = 1;
function addInput(){
var boxName = "Доп. опция "+countBox;
var spanElement = document.getElementById("responce");
spanElement.innerHTML +=
"<br />"+
"<input maxlength='70' style='height:40px;width:200px' type='text' id='"+ boxName +"' value='' name='OptionsName' placeholder='Название' />"+
"<input maxlength='10' style='height:40px;width:150px' type='text' id='"+ boxName +"' value='' name='OptionsSumm' placeholder='Цена в Р' />"+
"<input maxlength='3' style='height:40px;width:220px' type='text' id='"+ boxName +"' value='' name='OptionsDates' placeholder='Кол-во дней' />"+
"<br />";
countBox++;
}
</script>
<input type="button" class="btn btn-success btn-sm" style="color:black" value="Добавить опцию" onclick="addInput()"/>
<span id="responce"></span>
При нажатии на кнопку "добавить опции" добавляются строки как на приложении скриншоте. Так вот их добавляет сколько угодно, а как поставить на кнопку ограничение чтобы больше 3 не добавлялось?
Миниатюры
Ограничить число добавляемых элементов  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.05.2020, 19:34
Ответы с готовыми решениями:

Ограничить число потоков
Приветствую. У меня проблема.. Нужно как-нибудь ограничить число создаваемых в цикле параллельных потоков... Функция, в которой...

Ограничить число узлов в treeview
народ подскажите, пожалуйста, возможно ли ограничить количество nodes в treeview?

Ограничить число потоков в QTcpServer-e
С ходу не смог найти как можно ограничить кол-во потоков на подключенных к серверу сокетах, по умолчанию сервер на каждый сокет выделит по...

10
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
24.05.2020, 19:45
1)
Цитата Сообщение от dotez Посмотреть сообщение
"<br />"+
"<input maxlength='70' style='height:40px;width:200px' type='text' id='"+ boxName +"' value='' name='OptionsName' placeholder='Название' />"+
"<input maxlength='10' style='height:40px;width:150px' type='text' id='"+ boxName +"' value='' name='OptionsSumm' placeholder='Цена в Р' />"+
"<input maxlength='3' style='height:40px;width:220px' type='text' id='"+ boxName +"' value='' name='OptionsDates' placeholder='Кол-во дней' />"+
"<br />";
вместо <br> убери в div. Разные элементы с одинаковыми id - недопустимо
В начале функции делаешь if (document.getElementsByClassName("class_ твоего_diva").length < 3) {добавить новый див}
2) javascript - это не ява, пиши в соответствующий раздел
0
4 / 4 / 2
Регистрация: 01.04.2017
Сообщений: 415
24.05.2020, 19:56  [ТС]
Цитата Сообщение от xoraxax Посмотреть сообщение
вместо <br> убери в div. Разные элементы с одинаковыми id - недопустимо
ну это я сделал-
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    <script type="text/javascript">
var countBox = 1;
function addInput(){
var boxName = "Доп. опция "+countBox;
var spanElement = document.getElementById("responce");
spanElement.innerHTML +=
"<div />"+
"<input maxlength='70' style='height:40px;width:200px' type='text' id='"+ boxName +"' value='' name='OptionsName' placeholder='Название' />"+
"<input maxlength='10' style='height:40px;width:150px' type='text' id='"+ boxName +"' value='' name='OptionsSumm' placeholder='Цена в ₸' />"+
"<input maxlength='3' style='height:40px;width:220px' type='text' id='"+ boxName +"' value='' name='OptionsDates' placeholder='Кол-во дней' />"+
"<div />";
countBox++;
}
</script>
<input type="button" class="btn btn-success btn-sm" style="color:black" value="Добавить опцию" onclick="addInput()"/>
<span id="responce"></span>
но класса у меня нет у дива и кнопки добавить новый див тоже, по этому дальнейшее из того что ты предложил невозможно.
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
24.05.2020, 20:28
Лучший ответ Сообщение было отмечено dotez как решение

Решение

Ну прочитай хоть немного по html, ерунду же написал. Кто мешает тебе добавить класс?

Добавлено через 14 минут
HTML5
1
2
<div id="response"></div>
<input type="button" class="btn btn-success btn-sm" style="color:black" value="Добавить опцию" onclick="addOption()"/>
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
function addOption(){
    if (document.getElementsByClassName("option").length < 3) {
    var spanElement = document.getElementById("response");
    spanElement.innerHTML +=
  
    "<div class='option'>"+
    "<input maxlength='70' style='height:40px;width:200px' type='text'  value='' name='OptionsName' placeholder='Название' />"+
"<input maxlength='10' style='height:40px;width:150px' type='text'  value='' name='OptionsSumm' placeholder='Цена в ₸' />"+
"<input maxlength='3' style='height:40px;width:220px' type='text'  value='' name='OptionsDates' placeholder='Кол-во дней' />"+
"</div>";
}
}
https://jsfiddle.net/pgj081sb/
1
4 / 4 / 2
Регистрация: 01.04.2017
Сообщений: 415
24.05.2020, 21:01  [ТС]
Цитата Сообщение от xoraxax Посмотреть сообщение
https://jsfiddle.net/pgj081sb/
получилось! Благодарствую)

Добавлено через 22 минуты
Цитата Сообщение от xoraxax Посмотреть сообщение
Добавлено через 14 минут
https://jsfiddle.net/pgj081sb/

народ, а никто не знает почему в этом скрипте когда ты допустим две строки добавил, ввел в них значения и жмешь еще третью добавить, то введенные значения в первых двух очищаются...?
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
24.05.2020, 21:23
Лучший ответ Сообщение было отмечено dotez как решение

Решение

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
function addOption(){
    if (document.getElementsByClassName("option").length < 3) {
        var element = document.getElementById("response");
    createNewOption(element);
    }
}
 
function createNewOption(element) {
    var newRow = document.createElement('div');
  newRow.className="option";
    createNewInput(70, "200px", "OptionsName", "Название", newRow);
  createNewInput(10, "150px", "OptionsSumm", "Цена", newRow);
  createNewInput(3, "220px", "OptionsDates", "Кол-во дней", newRow);
    element.appendChild(newRow);
}
 
function createNewInput(length, width, name, placeholder, element) {
    var newInput = document.createElement('input');
  newInput.setAttribute("maxLength", length);
  newInput.setAttribute("maxWidth", width);
  newInput.setAttribute("name", name);
  newInput.setAttribute("placeholder", placeholder);
  element.appendChild(newInput);
}
так и быть https://jsfiddle.net/ry0tjfpa/
1
4 / 4 / 2
Регистрация: 01.04.2017
Сообщений: 415
24.05.2020, 21:37  [ТС]
Цитата Сообщение от xoraxax Посмотреть сообщение
во, классно!
0
4 / 4 / 2
Регистрация: 01.04.2017
Сообщений: 415
25.05.2020, 03:19  [ТС]
Цитата Сообщение от xoraxax Посмотреть сообщение
подскажите пожалуйста, а почему когда я ввожу вот так-
JavaScript
1
newInput.setAttribute("name", name + '1');
то он не прибавляет 1 как цифру а просто дописывает ее всем (см. вложение), а я хочу чтобы они 1 2 3 становились иначе как их потом использовать то с одним именем))))))
Миниатюры
Ограничить число добавляемых элементов  
0
4 / 4 / 2
Регистрация: 01.04.2017
Сообщений: 415
25.05.2020, 14:18  [ТС]
кто-нибудь подскажет как 1 прибавить к Name-ам ?))
0
Эксперт JS
 Аватар для Iverycool
1586 / 796 / 362
Регистрация: 01.02.2019
Сообщений: 1,047
25.05.2020, 15:56
Лучший ответ Сообщение было отмечено dotez как решение

Решение

dotez, можно сделать так:
JavaScript
1
newInput.setAttribute("name", name + document.getElementsByClassName("option").length + 1)
1
4 / 4 / 2
Регистрация: 01.04.2017
Сообщений: 415
25.05.2020, 16:12  [ТС]
Цитата Сообщение от Iverycool Посмотреть сообщение
newInput.setAttribute("name", name + document.getElementsByClassName("option" ).length + 1)
cпасибо! вы почти правы оказались, ток надо еще в скобочки взять-
JavaScript
1
newInput.setAttribute("name", name + (document.getElementsByClassName("option").length + 1));
Благодарствую!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.05.2020, 16:12
Помогаю со студенческими работами здесь

ComboBox ограничить число айтемов
Всем привет! Задача вроде простая, но хочу поинтересоваться)Как сделать максимально-возможное число айтемов в comboBox 10-ти. А следующие...

Ограничить число новостей в рассылке
Здравствуйте! Как в автоматической рассылке сделать отображение только 5 новостей? В данный момент выводятся все новости за выбранный...

Ограничить число запросов к серверу
Существует ли надежный способ как-то идентифицировать клиентскую машину, чтобы ограничить количество запросов этого клиента за определенное...

Ограничить число знаков в StringGird
Здравствуйте. Подскажите как ограничить число в StringGird. Например у меня число 1553,1021728, а нужно чтобы выводило только 1553,102?

Ограничить число подсказок AutoCompleteTextView
Как сделать так чтобы когда пользователь вводит текст в поле AutoCompleteTextView, ему отображалось только 4 подсказки а остальные можно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru