Rails和ajax文件上传 – 无法读取属性’innerHTML’的null错误

我正在开发一个带有动态模块的Rails应用程序 – ajax – 图像上传到图库。 我正在基于这个应用程序 – 多文件上传 – 演示 。 我不是很喜欢Javascript和东西,所以我从该实现中复制了很多逻辑。

我根据rounders demo的所有逻辑构建了我的应用程序,我已经包含了所有的gems和javascript库,但是我收到了一个错误:

Uncaught TypeError: Cannot read property 'innerHTML' of null 

在chrome控制台中,它引用了tmpl.js文件

 tmpl.load = function (id) { return document.getElementById(id).innerHTML; }; 

我对JS的了解并没有让我明白哪一段代码触发了这个函数,所以我可以更进一步。

你能告诉我调查这个问题根源的下一步是什么? 我预计潜在的原因可能会有所不同,所以我不想粘贴应用程序中的所有代码。

这是旧的,但我找到了一个实际的解决方案。 将application.js的require更改为//=require jquery-fileupload/basic而不是//= require jquery-fileupload

您收到此错误的原因是您缺少脚本标记id =“template-upload”或id =“template-download”或两者。

演示中的示例: http : //blueimp.github.com/jQuery-File-Upload/

    

UI版本取决于存在的这些模板。

我遇到了同样的问题,并决定检查丢失的内容。

希望有所帮助。

我也遇到了同样的问题。 但是,加载基本版本的文件上传插件对我来说不是一个选项,因为我使用预览进行一次上传,而不是另一次上传。 您可以通过将file-upload插件的uploadTemplateIddownloadTemplateId选项设置为uploadTemplateId禁用“预览”function以及尝试处理template-uploadtemplate-download

错误消息告诉我们document.getElementById(id)返回null ,因此文档中当前没有具有指定id.元素id.

要进行调试,请尝试添加对console.log(id);的调用console.log(id);return声明之前。 完成后,您可以找到导致问题的id值。 希望错误是一个简单的拼写错误的结果,记住id的值是区分大小写的。 如果错字不是问题,您至少可以设置一个条件断点,因为您现在知道要中断的id的值。 在点击断点之后,只需逐步调用调用函数即可“查看哪一段代码触发了该函数”。 希望这可以帮助。

我正在使用这个插件几个月,今天我注意到文件上传不起作用,我收到一个错误

 "cannot read property 'innerHTML' of null error". 

我调查了它,因为一个简单的原因。 文件路径

 http://blueimp.github.io/JavaScript-Load-Image/js/load-image.min.js 

变成

 http://blueimp.github.io/JavaScript-Load-Image/js/load-image.all.min.js 

在blueimp的git中。 你可以在这看到

 https://github.com/blueimp/jQuery-File-Upload 

此文件中的路径已更改。

 https://github.com/blueimp/jQuery-File-Upload/blob/master/index.html 

我改变了正确的道路和工作。 希望这个答案可以帮助那些遇到同样问题的人。