在firefox中操作html输入类型文件名
manipulate html input type file filename in firefox
我有一个html输入类型的文件控件。当我选择一个名称很大的文件时,它会在firefox中显示完整的文件名,这会导致UI不好。这个问题有什么解决办法吗,比如改名等等?
您可以这样处理:
- 隐藏html
input file
控件并添加onchange
事件处理程序以更改所选文件名 - 添加只读html
textbox
控件,用于显示更改的文件名 - 使用
onclick
事件处理程序添加htmlbutton
控件以触发文件控件的单击事件
此处演示
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);" />
CSS:
#file1 {
display: none;
}
JS:
function browseFile() {
document.getElementById('file1').click();
}
function setFileName(fileName) {
/* Manipulate file name here */
fileName = fileName.substr(0, fileName.lastIndexOf('.'));
document.getElementById('txtFile').value = fileName;
}
我知道三个可能的答案:
- 您可以设置输入的大小样式,然后浏览器将较长的名称剪切为给定的大小(在可见部分的末尾带有"…")
- 出于安全原因,您不能从脚本更改文件输入的值。触发器的单击事件也是如此。因此,在这种情况下,答案是否
- 您可以使用"pseude-custom-css"覆盖整个文件输入。它不是真正的输入样式,但使用了一些不透明度技巧。查看此处了解更多详细信息
相关文章:
- 在<输入类型=“;文件“/>
- 如何将输入类型值或id从一个jsp传递到另一个jsp页面
- 可以't将几个数字设置为<输入类型=“;数字“>
- 在输入类型日期中设置日期
- 如何将键入的文本从一个输入类型的文本复制到另一个
- 输入类型按钮返回历史记录并返回顶部
- 从HTML表单发布blob的表单输入类型是什么
- 输入类型文件的未捕获类型错误
- 如何在jQuery Mobile中设置100%宽度的输入类型日期
- 输入类型=文件验证停止其他输入类型验证
- 如何显示在输入类型文件中选择的文件
- jQuery Modal Popup-回发后输入类型设置为null
- 在控制器中将输入类型时间更改为秒
- 更改具有相同id的输入类型的所有值
- 对于每个输入类型,使用javascript获取值
- 输入类型范围在angularjs重复内不起作用
- 我如何使HTML5<输入类型=月份>以在所有浏览器上工作
- 如何调用两个函数是一种html输入类型
- 如何使按钮作为输入类型文件
- 可以设置输入类型=文件的文本框的高度