Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.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错误_Javascript_Asp.net - Fatal编程技术网

子窗口中的Javascript错误

子窗口中的Javascript错误,javascript,asp.net,Javascript,Asp.net,我正在试图找出为什么会出现错误: “window.opener.document.aspnetForm.formType为null或不是对象”。 我通过URL字符串将值从父窗口传递到弹出窗口(该子窗口是一个搜索表单)。 此值是SharePoint表单字段的ID(我需要这样做是有原因的,该值指示它是来自newform还是editform)。 我使用子窗口(geturlvalue())中的函数从url字符串中获得的值声明变量formType var formType=geturlvalue(名称)

我正在试图找出为什么会出现错误:

“window.opener.document.aspnetForm.formType为null或不是对象”。

我通过URL字符串将值从父窗口传递到弹出窗口(该子窗口是一个搜索表单)。 此值是SharePoint表单字段的ID(我需要这样做是有原因的,该值指示它是来自newform还是editform)。 我使用子窗口(geturlvalue())中的函数从url字符串中获得的值声明变量formType

var formType=geturlvalue(名称)

变量“formType”在子窗口中正常工作,在窗口打开器显示来自父窗口的正确值之前发出警报
ctl00_m_g_004d943c_bb99_4fba_bee5_68862443b98d_ctl00_ctl04_ctl18_ctl00_ctl04_ctl00_ctl00_文本字段

以下是子窗口中的打开程序:

window.opener.document.aspnetForm.formType.value = document.getElementById('Server').value;
打开程序需要从子窗口字段中的值填充父窗口中的输入字段,ID为Server

有人知道我为什么会在formType上出错吗?如果我将
ctl00_m_g_004d943c_bb99_4fba_bee5_68862443b98d_ctl00_ctl04_ctl18_ctl00_ctl00_ctl04_ctl00_TextField
添加到打开器中,以代替formType,它将正常工作并填充父输入字段:


window.opener.document.aspnetForm.ctl00_m_g_004d943c_bb99_4fba_bee5_68862443b98d_ctl00_ctl04_ctl18_ctl00_ctl00_ctl04_ctl00_ctl00_TextField.value=document.getElementById('Server')。value

这个问题其实不太详细,不管怎么说都可以试试

我真的被你的台词弄糊涂了:

window.opener.document.aspnetForm.formType.value = document.getElementById('Server').value;
这是什么

如果要使用以下命令,请确保表单具有name=“aspnetForm”(非id):

window.opener.document.aspnetForm
window.opener.document.aspnetForm.formType.value = ...
如果要使用,请确保表单元素具有name=“formType”(非id):

window.opener.document.aspnetForm
window.opener.document.aspnetForm.formType.value = ...

我想知道您是如何期望var formType成为window.opener.document的一部分的,但也许您已经在代码的其他地方定义了所有这些内容,所以也许您应该发布更多的代码,以便其他人了解您的程序中发生了什么。

看起来像
formType
是父窗口中元素的ID,因此,在这种情况下,您需要这样的代码:

window.opener.document.getElementById(formType).value = document.getElementById('Server').value;

我只是为了更清晰地编辑了它。仅供参考,这是在SharePoint 2007中完成的。就是这样!我之前尝试此操作时忘记删除aspnetForm。简单的疏忽会让我们发疯。谢谢你的帮助!这就是我们在这里的目的。:)我怀疑我说的是同样的话,但不是那么怀孕。@Shadow好吧,这个词似乎有点误导=)让我们说它更能说明问题,而不必详细说明。