无法获得inputtypes=“文件”的值?

我有一个<input type="file" id="uploadPicture" value="123">

当我使用: alert($("#uploadPicture").val());

它提醒一个空的对话框。

你可以阅读,但你不能设置它。 value="123"将被忽略,所以它不会有一个值,直到你点击它并select一个文件。

即使这样,这个值也可能会像c:\fakepath\那样被破坏,以保持用户文件系统的私密性。

@BozidarS:现在FileAPI得到了很好的支持,并提供了许多有用的选项。

 var file = document.forms['formName']['inputName'].files[0]; //file.name == "photo.png" //file.type == "image/png" //file.size == 300821 

你可以通过使用document.getElementById();

 var fileVal=document.getElementById("some Id"); alert(fileVal.value); 

会给出文件的值,但是如下给出了假path

 c:\fakepath\filename 
 $('input[type=file]').val() 

这会让你select的文件。

但是,您无法自行设置值。

您不能在标记中设置fileinput的value ,就像您使用value="123"所做的那样。

这个例子显示它确实有效: http : //jsfiddle.net/marcosfromero/7bUba/

这是一个老问题,但如果有人碰到这个问题…

 var input = document.getElementById("your_input"); var file = input.value.split("\\"); var fileName = file[file.length-1]; 

不需要正则expression式,jQuery ….

删除值=“123”的事情会很好看。 然后尝试:

 $("file_selector").val(); 

仍然是一个问题。 你将得到一个c:\ fakepath \ yourfile.extension。