Asp:FileUpload编辑“未选择文件”消息
我只需要知道是否有一种方法可以在没有选择文件时更改 Asp:FileUpload
显示的消息 。
谢谢。
使用CSS pseduo-class替换文本和您自己的消息:after
。 你可以声明一个这样的类:
.bar:after { content:"Please select a file"; background-color:white; }
并将其分配给您的FileUpload控件。 内容消息将替换原始消息。 当然,在选择文件时你需要删除消息,你可以这样做,例如通过jQuery .removeClass
(假设你的FileUpload的ID是“foo”):
$('#foo').change(function() { $(this).removeClass("bar"); })
演示: http : //jsfiddle.net/5zhuL/2/
请注意,此解决方案似乎仅适用于Webkit浏览器(Chrome,Opera,Safari),您可能需要替代其他人。
见上面的链接。 我使用css隐藏默认文本并使用标签来显示我想要的内容:
HTML
CSS
input[type=file]{ width:90px; color:transparent; }
JavaScript的
window.pressed = function(){ var a = document.getElementById('aa'); if(a.value == "") { fileLabel.innerHTML = "Choose file"; } else { var theSplit = a.value.split('\\'); fileLabel.innerHTML = theSplit[theSplit.length-1]; } };
不,不可能。 这是Chrome中的标准渲染,无法更改。
如果您在浏览器中访问页面源,则将输入元素设置为type='file'
而不是FileUpload。 当value属性为空时,您可以简单地使用CSS来覆盖文本。
只将此CSS添加到您的代码中。 它只是隐藏“没有选择文件”。
http://jsfiddle.net/Lsgbx5ne/1/
input[type=file]{ color:transparent; } input[type=file]:after { color: #000; content:" Cool!"; }
对其他解决方案的改进:
- 适用于短文本
- 不改变背景颜色
- 纯净的CSS
这项工作在所有浏览器中
window.pressed = function(){ var a = document.getElementById('aa'); if(!(a.value == "")) { var theSplit = a.value.split('\\'); fileLabel.innerHTML = theSplit[theSplit.length-1]; } };
input[type=file]{ width:90px; color:transparent; }