将文件名从文件上传传递到文本字段

Fus*_*ice 10 javascript upload action function

我有一个表单的一部分,用户可以上传文件.我只想将文件名发送到同一表单的文本字段.因此,如果用户上传了"C:/Folder/image.jpg",则文本字段应显示"image.jpg".我自己尝试了一些代码,但我知道这是错的:

function ff_uploadimages_action(element, action)
{var m = data.match(/((*):\/)/(.*)[\/\\]([^\/\\]+\.\w+)$/);
switch (action) {
case 'change':
if (data.match(/((*):\/)/(.*)[\/\\]([^\/\\]+\.\w+)$/).value)
ff_getElementByName('filename').value = m[2].text;
        default:;
    } // switch
} // ff_uploadimages_action
Run Code Online (Sandbox Code Playgroud)

ff_uploadimages是要上载文件的字段,filename是应显示名称的文本字段.任何帮助都表示赞赏!谢谢.

Mik*_*keM 30

这是一种方法

HTML:

document.getElementById('upload').onchange = uploadOnChange;

function uploadOnChange() {
  var filename = this.value;
  var lastIndex = filename.lastIndexOf("\\");
  if (lastIndex >= 0) {
    filename = filename.substring(lastIndex + 1);
  }
  document.getElementById('filename').value = filename;
}
Run Code Online (Sandbox Code Playgroud)

JavaScript的:

<input id="upload" type="file" />
<input id="filename" type="text" />
Run Code Online (Sandbox Code Playgroud)

你没有提到jQuery,但考虑到它的受欢迎程度,这是使用jQuery的相同解决方案

jQuery的:

$('#upload').change(function() {
    var filename = $(this).val();
    var lastIndex = filename.lastIndexOf("\\");
    if (lastIndex >= 0) {
        filename = filename.substring(lastIndex + 1);
    }
    $('#filename').val(filename);
});
Run Code Online (Sandbox Code Playgroud)

演示:

http://jsfiddle.net/pxfunc/WWNnV/4/