Asp:FileUpload编辑“未选择文件”消息

时间:2013-11-25 19:21:29

标签: c# css asp.net asp.net-webpages

我只需要知道当没有选择任何文件时,是否有办法更改Asp:FileUpload所显示的消息

This message

感谢。

7 个答案:

答案 0 :(得分:4)

http://jsfiddle.net/ZDgRG/

见上面的链接。我使用css来隐藏默认文本并使用标签来显示我想要的内容:

HTML

<div>
      <input type='file' title="Choose a video please" id="aa" onchange="pressed()">
      <label id="fileLabel">Choose file</label>
</div>

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];
    }
 };

答案 1 :(得分:3)

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

答案 2 :(得分:1)

不,不可能。这是Chrome中的标准渲染,无法更改。

答案 3 :(得分:1)

如果您在浏览器中访问您的页面源,则使用type='file'而不是FileUpload输入一个输入元素。 当value属性为空时,您可以简单地使用CSS来覆盖文本。

答案 4 :(得分:0)

仅将此CSS添加到您的代码中。它只是隐藏“没有选择文件”。

<style>
 input[type=file]
{
width:90px;
color:transparent;
}

</style>

答案 5 :(得分:0)

http://jsfiddle.net/Lsgbx5ne/1/

input[type=file]{
  color:transparent;
}
input[type=file]:after {
  color: #000;
  content:" Cool!";
}

对其他解决方案的改进:

  • 适用于短文
  • 不会更改背景颜色
  • Pure css

答案 6 :(得分:0)

此功能适用于所有浏览器

&#13;
&#13;
12  dns.exe
&#13;
window.pressed = function(){
    var a = document.getElementById('aa');
    if(!(a.value == ""))
    {
        var theSplit = a.value.split('\\');
        fileLabel.innerHTML = theSplit[theSplit.length-1];
    }
};
&#13;
input[type=file]{
    width:90px;
    color:transparent;
}
&#13;
&#13;
&#13;