我的问题很简单:jQuery和输入[类型=“文件”]问题
我想保存我选择使用文件输入,并使用jQuery我希望把他们的名字别的地方瞬间的文件名没有刷新页面。
也许我会用文件名替换一个简单的文本。我会怎么做?
例子:
在开始正文: 的Hello World
选择文件后,这个 “Hello World” 将与 “my_filename.gif” 所取代。
想法?
我的问题很简单:jQuery和输入[类型=“文件”]问题
我想保存我选择使用文件输入,并使用jQuery我希望把他们的名字别的地方瞬间的文件名没有刷新页面。
也许我会用文件名替换一个简单的文本。我会怎么做?
例子:
在开始正文: 的Hello World
选择文件后,这个 “Hello World” 将与 “my_filename.gif” 所取代。
想法?
这里有一个潜在的解决方案:
<input type="file" onchange="$('#helloWorld').val($(this).val());"/>
<input id="helloWorld" value="Hello World"/>
你可以检查出来here
编辑:
修改它,以便将该值设置为 “Hello World” 开始,而不是innerHTML之中。
可以在数据功能保存对元素:
function getFileNameFromPath(path) {
var ary = path.split("\\");
return ary[ary.length - 1];
}
$(function() {
$('input[type=file]').change(function() {
$(this).data(
'fileName',
getFileNameFromPath($(this).val())
);
alert($(this).data('fileName'));
});
});
'' ...? – davin 2011-05-24 21:47:38
在标记中混合javascript逻辑是不好的做法,应该避免 – XGreen 2011-05-24 21:53:59
@XGreen一般来说,我同意你的看法。不过,我坚信,将JavaScript事件添加到标记中的元素是可以的。这使得事件处理程序在查看HTML时很清晰,并且如果它们被正确命名,也可以在JavaScript文件中进行命名。如果我正在做更复杂的事情,我会在JavaScript文件中创建一个onchange函数并引用它。但是,我认为在这种情况下增加了不必要的复杂性,并使输入之间的联系更加模糊。 – Briguy37 2011-05-25 13:31:17