选择值后获取未定义

时间:2015-10-07 13:16:18

标签: javascript jquery

var input = $(document.createElement('input')); 
input.attr("type", "file");
input.attr("id", "files");
input.attr("name", "files[]");
input.trigger('click');
alert(input.attr("value"));

上面的脚本打开文件浏览器窗口,我也可以选择该文件,但是在看到未定义的警报中,如何在警报中获取实际文件名。

3 个答案:

答案 0 :(得分:5)

请使用:

var input = $("<input />");

并将警报与change事件绑定。

<强>段

&#13;
&#13;
$(function () {
  var input = $("<input />"); 
  input.attr("type", "file");
  input.attr("id", "files");
  input.attr("name", "files[]");
  input.trigger('click');
  $("body").append(input);
  input.change(function () {
    alert($(this).val());
  });
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

  

需要使用change侦听器从input type='file'获取值。在您的示例中,元素中没有属性value,因此它返回undefined

     

您可以自由使用$("<input />")$(document.createElement('input'));,但如果您正在使用jQuery方式,那么请选择前者。

试试这个:

&#13;
&#13;
var input = $("<input />");
input.attr("type", "file");
input.attr("id", "files");
input.attr("name", "files[]");
$('body').append(input);
input.on('change', function() {
  alert(this.value);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

嗨,您可以使用

&#13;
&#13;
   
var input = document.createElement('input');    
&#13;
&#13;
&#13;

&#13;
&#13;
var input = $("<input />"); 
&#13;
&#13;
&#13;

您的语法错误代码

请参考如何添加元素

Refer Document