У меня есть таблица, которая извлекает данные из json-файла. Я пытаюсь создать функцию, когда при двойном щелчке по любой строке появится окно, и это окно будет содержать некоторую информацию для строки, на которую была нажата кнопка. Вот некоторые из моего кода:JavaScript Pop Up window blank
for (var i = 0; i < data.length; i++) {
rowData = data[i];
rowsHtml +=
"<tr class='mainTableRow'><td>" + rowData.ID
+ "</td><td>" + rowData.FirstName
+ "</td><td>" + rowData.LastName
+ "</td><td>" + rowData.DOB
+ "</td><td>" + rowData.Gender
+ "</td></tr>";
var tbody = document.getElementById("data");
tbody.innerHTML+= rowsHtml;
//This gets the values for the pop up window
var tablerows = document.getElementsByClassName("mainTableRow");
for(var j=0; j<tablerows.length; j++){
tablerows[j].addEventListener("dblclick",function(){
//This is a function that creates a popup window
//openWindow just contains a window.open function with the name of
//my file and a few other parameters such as height/width of the window
openWindow("myhtmlfile.html");
//gets textboxes from another HTML file
var idvalue = document.getElementById("idtextbox");
var dobvalue = document.getElementById("dobtextbox");
//Adds values inside textbox. Should be same values for the clicked //row.
idvalue.value = rowData.ID;
dobvalue.value = rowData.DOB;
})
}
}
У меня есть два отдельных файла HTML для этого. В нем определена таблица. Другой файл HTML предназначен для всплывающего окна и имеет несколько текстовых полей, определенных в нем. (Значения будут записаны внутри текстового поля). Проблема в том, что всплывающее окно открывается, когда я дважды нажимаю на строку, но значения пустые. Текстовые поля должны иметь одинаковые значения для строки, на которую я нажал. Я получаю сообщение об ошибке: idvalue
пусто. Если я переместил свои текстовые поля в тот же HTML-файл, в котором есть таблица, он не даст мне эту ошибку, но он не даст мне информацию для строки, на которую я нажал, только информация для последней строки , Файл JavaScript включен в оба файла HTML, но это не устраняет проблему.
Как исправить эту проблему, не используя jQuery или любую другую библиотеку JS? Любая помощь будет оценена по достоинству.
Спасибо за помощь! –
Без проблем, рад, что я мог бы помочь. – Mocking