Javascript 上载文件jquery时出现未捕获类型错误

Javascript 上载文件jquery时出现未捕获类型错误,javascript,jquery,typeerror,Javascript,Jquery,Typeerror,您好,我正在使用from将歌曲上传到wordpress网站。我使用一个表单,一个人可以将一个/多个歌曲文件上传到服务器 我的表格是: 及 但有一个控制台错误: 未捕获类型错误:无法读取未定义的属性“name” 我怎样才能解决这个问题 以及如何使用该文件获取完整的URL 例如:一个url是:http://website.com/wp-content/uploads/2015/12/mpthreetest.mp3 另一个usrl是:http://website.com/wp-content/uplo

您好,我正在使用from将歌曲上传到wordpress网站。我使用一个表单,一个人可以将一个/多个歌曲文件上传到服务器

我的表格是: 及 但有一个控制台错误:
未捕获类型错误:无法读取未定义的属性“name”

我怎样才能解决这个问题

以及如何使用该文件获取完整的URL

例如:一个url是:
http://website.com/wp-content/uploads/2015/12/mpthreetest.mp3

另一个usrl是:
http://website.com/wp-content/uploads/2013/09/mpthreetest.mp3

所以我只需要在url上确定日期,我就可以从代码中获得文件名

未捕获的TypeError:无法读取未定义的属性“name”

它可能是指
jQuery('#songs').prop(“files”)[0]['name']

以下是空的jQuery对象:

jQuery('#songs').prop("files")
要回答您的问题“我如何解决这个问题”,请先看看为什么选择器
jQuery(“#songs”).prop(“文件”)
与任何内容都不匹配

编辑

检查ID为<代码>歌曲的元素,是否可以看到
文件
属性?它是一个数组吗?里面有什么东西吗?第一个元素是否包含name属性

您的错误也可能来自
警报
行:
警报(song_file.name)


只需检查控制台,它会将您指向右边的行。

它看起来像是在pageload上查看的,而此时它仍然是空的。您应该查看输入字段的任何更改事件上的文件,如下所示:

jQuery

jQuery(document).ready(function() {
  jQuery("input:file").change(function(event) {
    var song_file = $('#songs')[0].files[0];
    if (song_file) {
      alert(song_file.name);
    }
  });
})

工作

您好,我正在使用wordpress。如果我使用
$
,那么
$不是一个函数
如果我使用
var filename=jQuery(“#歌曲”).prop(“文件”)[0]
然后会出现一个警报
未定义
,但这是在页面加载之后出现的。但我需要显示,在选择文件后,您需要在提交时进行文件检查,就像在另一个答案中一样。您好,谢谢,它可以工作,但当我按下提交按钮时会显示。但我需要用户在提交之前选择文件时更新文件更改的答案而不是提交
var filename = jQuery('#songs').prop("files")[0]['name'];
alert(filename);
jQuery('#songs').prop("files")
jQuery(document).ready(function() {
  jQuery("input:file").change(function(event) {
    var song_file = $('#songs')[0].files[0];
    if (song_file) {
      alert(song_file.name);
    }
  });
})