Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/55: Рейтинг темы: голосов - 55, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 03.09.2015
Сообщений: 35

Как добавить input в ячейки таблицы

27.09.2018, 13:03. Показов 10866. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Все привет. Я создаю динамическую редактируемую таблицу на HTML. Сейчас застрял на редактировании ячеек td таблицы table. Как мне добавить импуты в первый столбец и во второй столбец? (в третий столбец я хочу добавить выпадающие списки)?

Вот HTML:

HTML5
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
<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <link rel="shortcut icon" href="favicon.ico">
    <meta http-equiv="Content-Type" content="text/html">
    <link rel="stylesheet" href="css/style.css">
    <script src="./js/create-a-table.js"></script>
    <title>Test</title>
</head>
<body>
    <form>
        <h2>выберите таблицу</h2>
        <select type="text" class="name-certificate">
            <option value="Test1">Test1</option>
            <option value="Test2">Test2</option>
        </select>
        <h2>выберите нужное кол-во строк</h2>
        <input type="number" class="rows-certificate">
        <input type="text" name="fix press enter on input " value="Fix IE bug" style=" display:none ">
        <p><input type="button" class="button-create-table" value="Создать таблицу">
    </form>
 
</body>
</html>
Вот JS:
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
document.addEventListener('DOMContentLoaded', function () {
        let certificateTable = document.querySelector('.button-create-table');
 
        certificateTable.addEventListener('click', function () {
            let nameCertificate = document.querySelector('.name-certificate');
            let rowsCertificate = document.querySelector('.rows-certificate');
            let row =  rowsCertificate.value;
            // проверяем на правильность введенных данных
            if (row < 1 || row == 0 ) {
                alert('ОШИБКА! Вы должны ввести положительное число.');
                throw "stop";
            }
            let divСertificate = document.createElement('div');
            divСertificate.className = 'div-certificate';
 
            // после выбора вида Теста создаем форму для ввода
            if (nameCertificate.value == 'Test1') {
                divСertificate.innerHTML = "<h1>Test1</h1>";
                let elem = document.body.children[0];
                elem.remove();
            } 
            else {
                divСertificate.innerHTML = "<h1>Test2</h1>";
                let elem = document.body.children[0];
                elem.remove();
            }
            
            let newTable = document.createElement('table');
            newTable.className = 'table-certificate';
 
            // создаем заголовки таблице
            let th = newTable.insertRow(0);
            th.insertCell(0).outerHTML = "<th>1</th>";
            th.insertCell(1).outerHTML = "<th>2</th>";
            th.insertCell(2).outerHTML = "<th>3</th>";
 
 
            for (let i = 1; i <= row; i++) {
                let newRow = newTable.insertRow(i);
                for (let j = 0; j <= 2; j++) {
                    let newCell = newRow.insertCell(j)
                        if ( j == 0) {
                            let NewInput = document.createElement('input');
                            //appendChild(NewInput);
                        }
                }
            }
            document.body.appendChild(divСertificate).appendChild(newTable).appendChild(NewInput);
        });
});
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.09.2018, 13:03
Ответы с готовыми решениями:

Как добавить Оглавление и номера страниц в ячейки таблицы?
Доброго здоровья, форумчане. Столкнулся с такой проблемой. В пояснительной записке требуется создать Оглавление в ГОСТовской рамке,...

Как объединить 3 последних ячейки по вертикали, и сохранить кнопку input?
Здравствуйте все :) Я осваиваю азы html. Сегодня создавал таблицу и обнаружил, что при объединении ячеек тегом rowspan - нивелируется тег...

Как добавить Value для Input
У меня хиден инпут с пустым вэлью. Как мне используя си шарп передать значсение для атрибута вэлью? Спасибо!

6
249 / 162 / 68
Регистрация: 10.12.2017
Сообщений: 558
27.09.2018, 14:00
Лучший ответ Сообщение было отмечено Danila00000 как решение

Решение

JavaScript
1
2
3
4
if ( j == 0 || j == 1) {
  let NewInput = document.createElement('input');
  newCell.appendChild(NewInput);
}
с select тоже самое createElement и newCell.append(select)
0
0 / 0 / 0
Регистрация: 03.09.2015
Сообщений: 35
27.09.2018, 15:58  [ТС]
Evgen1337, спасибо большое, помогло))) У меня к вам есть еще один вопрос. Я создал в 3 столбце элементы select. Я могу создать любое количество options к этому select.

JavaScript
1
NewSelect.options[0] = new Option("Test");
Но у меня довольно много выйдет элементов Option. Возможно ли реализовать такой вариант, что все options хранятся в отдельном текстовом файле, и во время создания таблицы options автоматически подгружаются в элемент select?
0
249 / 162 / 68
Регистрация: 10.12.2017
Сообщений: 558
27.09.2018, 16:09
Да, можно. (https://developer.mozilla.org/... jacentHTML)

Но тогда options должны быть в скрипте как строка (var options = '<option value="1">1</option>...', или их надо загрузить с помощью ajax, если грузить ajax'ом то лучше в виде json. Но это все делать надо.
0
0 / 0 / 0
Регистрация: 03.09.2015
Сообщений: 35
27.09.2018, 16:30  [ТС]
Спасибо, за совет) Буду разбираться.
0
249 / 162 / 68
Регистрация: 10.12.2017
Сообщений: 558
27.09.2018, 16:47
index.html
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<html>
 
<head>
  <script>
    document.addEventListener('DOMContentLoaded', function () {
      var select = document.getElementById('select')
      data.forEach(function (item, idx) {
        select.options[idx] = new Option(item.title, item.value)
      })
    })
  </script>
  <script type="text/javascript" src="data.js"></script>
</head>
 
<body>
  <select id="select"></select>
</body>
 
</html>
data.js
JavaScript
1
2
3
4
5
const data = [
  { id: 1, value: 1, title: 'one' },
  { id: 2, value: 2, title: 'two' },
  { id: 3, value: 3, title: 'thr' },
]
0
0 / 0 / 0
Регистрация: 03.09.2015
Сообщений: 35
27.09.2018, 17:35  [ТС]
Evgen1337, еще раз огромное спасибо вам за помощь))) Прям не ожидал)))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.09.2018, 17:35
Помогаю со студенческими работами здесь

Как динамически добавить input на форму
Собственно, вопрос в заглавии темы. Пробовал што-то наподобие: for (int i = 0; i &lt; rows.Count; i++) { TextBox newBox...

Как добавить текст в часть ссылки из input
&lt;input type=&quot;text&quot; class=&quot;form-control&quot; id = &quot;namee&quot; name = &quot;namee&quot; placeholder=&quot;Введите название&quot;&gt; &lt;a...

Как добавить несколько записей из таблицы в ячейку другой таблицы через запятую?
имеется бд кулинарная книга, где при добавлении блюда, продукты добавлялись через запятую, по выбору из другой таблицы(список продуктов)......

Как добавить данные ячейки бд в массив
Добрый вечер! Нужна помощь, совсем запутался. Имеется таблица, в одной ячейке содержится, к примеру, такой ряд чисел...

Добавить текст ячейки в зависимости от цвета ячейки
Здравствуйте. Я не могу разобраться в написании формулы или макроса. В определенном диапазоне ячеек требуется: в зависимости от цвета...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru