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),您可能需要替代其他人。

http://jsfiddle.net/ZDgRG/

见上面的链接。 我使用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; }