Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Javascript将项目添加到列表框在Windows7上有效,但在W2008上不起作用_Javascript_Asp.net_.net_Windows 7 - Fatal编程技术网

使用Javascript将项目添加到列表框在Windows7上有效,但在W2008上不起作用

使用Javascript将项目添加到列表框在Windows7上有效,但在W2008上不起作用,javascript,asp.net,.net,windows-7,Javascript,Asp.net,.net,Windows 7,我们有两个aspx页面。我会叫他们Page1和Page2。Page1有一个列表框和一个按钮。该按钮打开第2页。Page2有一个列表框和一个按钮。Page2按钮有一个用Javascript编写的OnClientClick方法。它使用window.opener返回Page1,并将Page2列表框中选中的项目的值传递给Page1上的Javascript函数。通过使用警报,我们确定Page2将值正确地传递回Page1,Page1函数将启动。如果我们将网站发布到Windows7机器上,Page1功能也可以

我们有两个aspx页面。我会叫他们Page1和Page2。Page1有一个列表框和一个按钮。该按钮打开第2页。Page2有一个列表框和一个按钮。Page2按钮有一个用Javascript编写的OnClientClick方法。它使用window.opener返回Page1,并将Page2列表框中选中的项目的值传递给Page1上的Javascript函数。通过使用警报,我们确定Page2将值正确地传递回Page1,Page1函数将启动。如果我们将网站发布到Windows7机器上,Page1功能也可以正常工作。然而,在Windows2008标准服务器上,当我们到达将值作为新的ListBox项添加到Page1的ListBox的行时,Javascript就不起作用了。它不会抛出错误,但不会将项目添加到列表框中,在该点之后插入脚本的任何警报都不会触发。代码如下:

function ProcessFromPopup(dvalue, text) {
  var htmlSelect = document.getElementById('<%=lstSelEmployees.ClientID%>');
  var selectBoxOption = this.document.createElement("option");
  selectBoxOption.value = dvalue;
  selectBoxOption.text = text;
  htmlSelect.add(selectBoxOption, null);
  return true;
}

正如我所说,带有htmlSelect.add的行没有任何作用,并且在该行之后插入的任何警报都不会触发。直接插入该线上方的警报不会触发。那么,我们做错了什么?我们正在使用.NET4.0框架。此外,这是IE9和IE10中出现的行为,但在Chrome或Safari中没有。在Chrome和Safari中,代码运行良好。

我的同事刚刚发现了这一点。上的IE9需要稍微不同的语法。您只需执行以下操作,而不是创建SelectBox选项:

htmlSelect.add(new Option(text, dvalue));

新的是这里的关键。谢谢大家的帮助,很抱歉浪费了你的时间。我们已经为此绞尽脑汁三天了,我的同事终于找到了答案。

使用浏览器的开发工具逐步浏览javascript。来自MDN:虽然可以使用添加和删除等DOM操作方法将集合修改为select对象的子节点对象,这并不保证所有浏览器平台都支持。-我不确定他们指的是什么浏览器,测试的是什么浏览器,但它不是在所有浏览器上都能工作吗?我还会仔细检查生成的html,以确保它确实输出了一个有效的id,并且页面上有一个具有该id的元素。请尝试删除此项。从this.document.createElementoption@Lee Taylor-服务器上没有安装VisualStudio,因此我无法单步浏览那里的Javascript。