2013-06-12 39 views
0

请帮助我。 我的页面上有一个函数可以被AjaxAsyncFileUpload控件调用。通过javascript在标签上设置文本

function uploadComplete1(sender, args) { 
    var file1 = new String(args.filename).toLowerCase(); 
    if (file1.indexOf('docx', file1.length - 4) == -1 && file1.indexOf('doc', file1.length - 3) == -1 && file1.indexOf('xlsx', file1.length - 4) == -1 && file1.indexOf('xls', file1.length - 3) == -1) { 
     var elem = document.getElementById("ct100_ContentPlaceHolder1_lblUploadedFile1Minor_Network_Change"); 
    elem.InnerHTML = 'This file is not allowed.'; elem.style.visibility = "visible"; 
     } 
    } 

当这个函数被调用时,我得到一个错误:“未处理的异常:无法设置为null innerHTML属性”

我上无法找出原因我得到这个错误。它需要设置文本的标签位于页面上。我甚至通过chrome-pageinspect取得了确切的名字,以确保我有正确的名字。

在脚本添加到页面的控件后,此脚本通过代码放在页面中。

我在这里做错了什么?

+3

它是'innerHTML',而不是'InnerHTML' - JavaScript区分大小写。另外,除了特定的小生境外,它通常使用'new String()'构造。 –

+1

当你调用这个函数时,你确定ID“ct100_ContentPlaceHolder1_lblUploadedFile1Minor_Network_Change”已经存在吗?换句话说,是不是该ID无效,或者不是在文档准备就绪事件之前调用的代码? – Ricola3D

+0

当我检查Chrome中的元素时,我看到了页面上的标签。所以它确实存在。 – Eric

回答

0

当您设置innerHTML时,检查您的“elem”不为null

+0

我该如何检查?元素在页面上,完全由ID。它是否在div内很重要? – Eric

+0

@Eric:在函数中添加一个'alert()'或者'console.log()'来显示函数内部是什么'elem'。 –

+0

f它是空的,这可能是因为文档没有完全加载,在这种情况下,你可以使用$(document).ready()或window.onload – 2013-06-12 10:23:09