简单的JavaScript问题,在IE中返回NULL但在FireFox中工作!

时间:2010-01-04 00:30:28

标签: c# asp.net javascript vb.net ajax

我在外部.js文件中正确链接 ...

 function SubmitAge(age, UpdatePanelID, HiddenAgeID) {
  $get(HiddenAgeID).value = age;
  __doPostBack(UpdatePanelID);
 }

我正在通过on a href="#" ... html标记

来调用它

(标签已删除,请向右滚动,因为stackoverflow最难显示简单内容,第7次显示相关编辑,感谢stackoverflow)

a href="#" onclick="SubmitAge(24, 'ctl00_MainContent_arFrom_upAgeRange', 'MainContent_arFrom_HiddenAge')" runat="server" 24 /a 

然而,我收到此错误,并在SubmitAge函数的第一行调用它(与$ get(HiddenAgeID)行等...等等)

Error:
Microsoft JScript runtime error: 'null' is null or not an object

我已经在visual studio .net(vs2010 beta 2使用vb.net& c#)中复制并粘贴了我的WATCH窗口,而执行在SubmitAge .js函数内部中断...

  age 53 Number
  UpdatePanelID "ctl00_MainContent_arTo_upAgeRange" String
  HiddenAgeID Undefined identifier Error

为什么HiddenAgeId,就像UpdatePanelID一样明确传递,返回“未定义的标识符错误”???它困扰我到我无法移动的地步!我错过了一些男人吗?谢谢 - 非常感谢您的帮助或指示。

编辑:更新:当我在FireFox中加载它时,它完全正常(应该如此),但是在Internet Explorer中出现了错误,这不是浏览器兼容性问题,它应该在IE中工作,但事实并非如此!

3 个答案:

答案 0 :(得分:0)

如何调用此方法?你可能错误地只用两个参数调用方法(javascript允许这样,第三个参数只是在方法体内未定义)。或者你可能真的传递了一个未定义的值而没有意识到它。

你刚刚编辑了这个问题啊。在这种情况下,检查$ get(HiddenAgeID)返回的内容,它可能返回null,因为它无法找到它。

答案 1 :(得分:0)

考虑到由于命名容器而导致的任何可能的ID重叠,MainContent_arFrom_HiddenAge客户端上的{id} {}是正确的ID吗?

查看UpdatePanel的ID,HiddenAge的ID应该是HiddenAgeID吗?

答案 2 :(得分:0)

到目前为止,我已经确定这是Internet Explorer中的一个错误,它确实不是预期的行为,并且它在任何条件下都不能设计,我几乎可以肯定这是一个bug。我已经尝试了从重新安排js函数参数到添加伪参数,以及多次重启Internet Explorer,visual studio和计算机而没有运气。

所以,我决定将整个函数内容直接放入onclick =“(代码行”事件属性,这意味着对于我网站上的每一个页面,代码的整个功能行必须是重新打印110次(用户下载20到30 KB)...这是暂时的,直到我有时间找到更好的解决方案。

有没有人知道我们是否可以给正确部门的错误报告团队一个链接或指向这个线程的指针,这样他们至少可以调查并修复这个问题以改善产品?我不完全确定这是一个vs还是问题,但我认为他们都会担心这个问题。我愿意在需要时提供问题复制帮助。谢谢大家的帮助。