При нажатии на кнопку solve
у меня должны вытаскиваться значения из создаваемых в массиве inp
полей.
Но вытаскивается только последняя строчка и заполняется весь массив тоже последней строчкой.
Где ошибка и как ее исправить?
decide = document.getElementById('decide');
inp = [, ];
m = [, ]
decide.addEventListener('click', function(e) {
e.preventDefault();
row = parseInt(document.getElementById('resurse').value); //строки(ресурсы)
column = parseInt(document.getElementById('pred').value); //столбцы(предприятия)
lab = document.getElementById('label');
lab.innerHTML = 'Введите данные<br>';
console.log('row = ', row, 'column = ', column);
for (var i = 0; i < row; i++) {
for (var j = 0; j < column; j++) {
inp[i, j] = document.createElement('input');
inp[i, j].id = 'inp';
inp[i, j].type = 'number';
lab.appendChild(inp[i, j]);
}
br = document.createElement('br');
lab.appendChild(br);
}
solve = document.createElement('button');
solve.id = 'solve';
solve.innerHTML = 'Решить';
label.appendChild(solve);
solve.addEventListener('click', function(e) {
e.preventDefault();
for (var i = 0; i < row; i++) {
for (var j = 0; j < column; j++) {
console.log('[', i, '][', j, '] = ', parseInt(inp[i, j].value));
}
}
})
});
<form id="form" class="form">
<label>
<p>Введите количество распределяемых ресурсов</p>
<input type="number" id='resurse'>
<p>Введите количество предприятий</p>
<input type='number' id="pred">
</label>
<label>
<button id="decide">Вводить дальше</button>
</label>
<br>
</form>
<form id="form-data" class="form-data">
<div id='form-data__button' class="form-data__button">
<label id="label"></label>
</div>
</form>
Двумерные массивы в js делаются так:
var inp = [];
...
for (var i = 0; i < row; i++) {
inp[i] = [];
for (var j = 0; j < column; j++) {
inp[i][j] = document.createElement('input');
inp[i][j].id = 'inp';
inp[i][j].type = 'number';
lab.appendChild(inp[i][j]);
}
br = document.createElement('br');
lab.appendChild(br);
}
...
solve.addEventListener('click', function(e) {
e.preventDefault();
for (var i = 0; i < row; i++) {
for (var j = 0; j < column; j++) {
console.log('[', i, '][', j, '] = ', parseInt(inp[i][j].value));
}
}
})
Добавьте в Ваш код console.log(inp);
, и Вы увидите в чем дело: массив inp
у Вас - одномерный, а второй индекс просто игнорируется.
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Есть раздел сайта полон видео что грузит браузерЯ скрыл эти ролики display: none; и при наведении мышью отображаю
Помогите доделать меню на CSSПроблема в том что я не знаю как заставить все
На стороне сервера срабатывает catch блокЭто правильно, ожидаемый результат: