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

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

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

Author24 — интернет-сервис помощи студентам
Все привет. Я создаю динамическую редактируемую таблицу на 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
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.09.2018, 13:03
Ответы с готовыми решениями:

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

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

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

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

6
249 / 162 / 68
Регистрация: 10.12.2017
Сообщений: 558
27.09.2018, 14:00 2
Лучший ответ Сообщение было отмечено 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  [ТС] 3
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 4
Да, можно. (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  [ТС] 5
Спасибо, за совет) Буду разбираться.
0
249 / 162 / 68
Регистрация: 10.12.2017
Сообщений: 558
27.09.2018, 16:47 6
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  [ТС] 7
Evgen1337, еще раз огромное спасибо вам за помощь))) Прям не ожидал)))
0
27.09.2018, 17:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.09.2018, 17:35
Помогаю со студенческими работами здесь

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

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

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

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

Php, js , ajax , Input file как добавить картинку в папку на сервер?
Доброго времени суток! Впервые пытаюсь работать с Input type=file , помогите разобраться как мне...

Как посчитать сумму в строке таблицы из полей Input
Добрый вечер я только начинаю изучать JQuery, столкнулся с такой проблемой есть табличка в которой...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru