Javascript 在firefox中操作html输入类型文件名
我有一个html输入类型的文件控件。当我选择一个非常大的文件名时,它会在firefox中显示完整的文件名,这会导致糟糕的UI。是否有任何解决此问题的方法,如更改名称等?您可以通过以下方式处理此问题:Javascript 在firefox中操作html输入类型文件名,javascript,html,Javascript,Html,我有一个html输入类型的文件控件。当我选择一个非常大的文件名时,它会在firefox中显示完整的文件名,这会导致糟糕的UI。是否有任何解决此问题的方法,如更改名称等?您可以通过以下方式处理此问题: 使html输入文件控件隐藏,并添加onchange事件处理程序以更改所选文件名 添加一个只读htmltextbox控件,用于显示更改的文件名 使用onclick事件处理程序添加html按钮控件,以触发文件控件的单击事件 HTML: <input type="text" id="txtFile
输入文件
控件隐藏,并添加onchange
事件处理程序以更改所选文件名textbox
控件,用于显示更改的文件名onclick
事件处理程序添加html按钮
控件,以触发文件控件的单击事件<input type="text" id="txtFile" readonly="true" />
<input type="button" id="btn" value="Browse..." onclick="browseFile();" />
<input type="file" id="file1" name="file1" onchange="setFileName(this.value);" />
#file1 {
display: none;
}
function browseFile() {
document.getElementById('file1').click();
}
function setFileName(fileName) {
/* Manipulate file name here */
fileName = fileName.substr(0, fileName.lastIndexOf('.'));
document.getElementById('txtFile').value = fileName;
}
JS:
<input type="text" id="txtFile" readonly="true" />
<input type="button" id="btn" value="Browse..." onclick="browseFile();" />
<input type="file" id="file1" name="file1" onchange="setFileName(this.value);" />
#file1 {
display: none;
}
function browseFile() {
document.getElementById('file1').click();
}
function setFileName(fileName) {
/* Manipulate file name here */
fileName = fileName.substr(0, fileName.lastIndexOf('.'));
document.getElementById('txtFile').value = fileName;
}
我知道有三种可能的答案:
这与跨浏览器不兼容。当您提交标准表单时,您无法发送未从IO设置的文件。请单击file input control.AFAIR,文件未上载。我认为它也有很好的文档记录,但我只是假设这是真的,我认为这是一个糟糕的做法。我不确定它是否有效,但这确实为我指明了正确的方向。但在我的真实代码中,我最终使用了@Nitin uniformjs.com使用不透明:0技巧。不错的选择-看起来很酷。