JavaScript 弹出窗口空白

标签 javascript html popup

我有一个从 json 文件中提取数据的表。我正在尝试创建一个功能,当您双击任何行时,会弹出一个窗口,该窗口将包含所单击的行的一些信息。这是我的一些代码:

 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;

})
}

}

为此我有 2 个单独的 HTML 文件。其中定义了一个表。另一个 HTML 文件用于弹出窗口,并在其中定义了一些文本框。 (这些值将写入文本框内)。问题是,当我双击该行时,弹出窗口打开,但值是空白的。文本框应与我单击的行具有相同的值。我收到一条错误消息:idvalue 为空。如果我将文本框移动到其中包含表格的同一个 HTML 文件,它不会给我这个错误,但它不会给我所单击的行的信息,只会给我最后一行的信息。 JavaScript 文件包含在两个 HTML 文件中,但这并不能解决问题。

如何在不使用 jQuery 或任何其他 JS 库的情况下解决此问题?任何帮助将不胜感激。

最佳答案

您的问题在于以下几点:

var idvalue = document.getElementById("idtextbox");
var dobvalue = document.getElementById("dobtextbox");

您将从当前正在使用的窗口而不是正在打开的窗口获取 ID 为“idtextbox”和“dobtextbox”的元素。

如果您只想在弹出窗口中查看信息,更简单的方法是:

alert("ID:" + String(rowData.ID) + " DOB:" + String(rowData.DOB));

这将打开一个弹出对话框,其中包含您所需的文本。

如果您确实需要为此打开一个新窗口,请查看 HTML POST: Window.open and pass parameters by post method

或者斯克雷恩提到的内容。

关于JavaScript 弹出窗口空白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33659634/

相关文章:

javascript - 在 `.remove()` 循环内调用 `for` 不会删除所有元素

javascript - 以字节为单位的 base64 长度是多少?

javascript - 你如何找到 "display: none"元素的维度?

html - SCSS 不映射/编译

wpf - 将弹出窗口位置锁定到元素,或伪造带有图层的弹出窗口以在 ItemsControl 中进行就地编辑

javascript - 单击以增加数量

javascript - 如何转换时间范围以小时而不是日期显示? (NVD3图表)

php - 如何隐藏根据先前搜索显示的先前表格行

javascript - 使用 if 语句删除 Leaflet 弹出窗口中的 "null"属性

macos - NSWindow 的标题作为指示器弹出按钮