Я генерирую динамическую таблицу, добавляя к ней строку и затем присваивая некоторые свойства элементам, добавленным в эти ячейки. Все работает нормально, за исключением установленного флажка или сброса. В функции display_start_time()
, командаSetAttribute CheckBox checked не работает
document.getElementById(domain).checked = false;
не работает для строк динамически генерируемых. Когда я бросаю статическую таблицу в эту функцию, она работает правильно. Проблема может быть связана с функцией setAttribute (с использованием IE10, Windows 8), поскольку я попытался пройти через множество решений в Интернете, но не смог сделать прорыв в этом. Одним из решений является переход на jQuery, но у меня с этим несколько проблем.
- Я не знаю, JQuery
- Это займет меня некоторое значительное время в процессе обучения, а затем изменить весь свой код в соответствии с JQuery.
Функция Report
вызывается кнопкой мыши, чтобы создать новую строку. display_time(domain,range);
работает нормально.
Прошу вас, руководствоваться. Сценарий начинается здесь
function display_start_time(domain, range, user_id, process_id, process_name)
{
if(!document.getElementById(user_id).innerHTML)
{
alert("Please select the server");
document.getElementById(domain).checked = false;
}
else
{
question= confirm("Have you STARTED the " + domain + " of " + process_id + " ? ");
{
if(question)
display_time(domain,range);
else
{
document.getElementById(domain).checked = false;
}
}
}
}
function report(set_id,btn_id)
{
question= confirm("Has the error occurred ?");
if(question)
{
new_table = document.getElementById("isolop_table");
row = new_table.insertRow();
cell_1 = row.insertCell(0);
cell_2 = row.insertCell(1);
cell_3 = row.insertCell(2);
cell_4 = row.insertCell(3);
cell_5 = row.insertCell(4);
cell_6 = row.insertCell(5);
cell_7 = row.insertCell(6);
cell_8 = row.insertCell(7);
cell_9 = row.insertCell(8);
// Inserting Data in Isolop Table Rows
cell_1.innerHTML = serial;
cell_2.innerHTML = document.getElementById(set_id).innerHTML;
cell_2.setAttribute("id", "Int" + serial);
cell_4.innerHTML = cell_5.id;
cell_4.setAttribute("id","user_id"+serial);
cell_7.innerHTML = "Start Time";
cell_7.setAttribute("id","disp_start"+serial);
cell_8.innerHTML = "End Time";
cell_8.setAttribute("id","disp_end"+serial);
cell_5.innerHTML = "<input type='checkbox' ></input>";
cell_5.setAttribute("id", "INT"+serial);
// cell_5.setAttribute("checked", 'true');
cell_5.setAttribute('onclick',"display_start_time(cell_5.id,cell_7.id,cell_4.id,cell_2.innerHTML,'ISOLOP')");
cell_4.innerHTML = cell_5.id;
cell_6.innerHTML = "<input type='checkbox'></input>";
cell_6.setAttribute("id", "end"+serial);
cell_6.setAttribute('onclick',"display_end_time(cell_6.id,cell_8.id,cell_5.id,cell_2.innerHTML,'ISOLOP');");
cell_9.innerHTML = " <button type='button' onclick=report('Int1');>Report Error</button>";
document.getElementById(btn_id).disabled = true;
document.getElementById(btn_id).onclick = false;
return serial++;
}
}
проблема в том, что вы используете одни и те же глобальные переменные 'cell_1' через' cell_9' каждый раз, когда вы добавляете строку в таблицу. Когда пользователь нажимает на одну из ячеек, переменные будут ссылаться на ячейки в последней добавленной строке, а не на строку, на которую они нажимают. – Barmar
Я еще не пробовал более 1 строки. Он должен по крайней мере работать в течение 1 строки. – user3293604
Если вы планируете продлить его до нескольких строк, не тратьте время на попытку заставить этот проект работать, так как вам все равно придется его переделать. Используйте ответ Джоэла. – Barmar