Asp:FileUpload edit “No file selected” message

2019-02-07 10:10发布

I just need to know if there's a way to change the message shown by the Asp:FileUpload when no file as been selected.

This message

Thanks.

7条回答
狗以群分
2楼-- · 2019-02-07 10:50

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

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

Improvements over other solutions:

  • Works for short text
  • Doesn't change the background color
  • Pure css
查看更多
Luminary・发光体
3楼-- · 2019-02-07 10:51

This work in all browser

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;
}
<div>
<input type='file' title="Choose a video please" id="aa" onchange="pressed()">
<label id="fileLabel">Choose file</label>
</div>

查看更多
Explosion°爆炸
4楼-- · 2019-02-07 10:57

You replace the text with your own message using CSS pseduo-class :after. You can declare a class like this one:

.bar:after {
    content:"Please select a file";
    background-color:white;
}

And assign it to your FileUpload control. The content message will replace the original one. Of course upon file selection you need to remove the message, you can do this for example via jQuery .removeClass (assuming ID of your FileUpload is "foo"):

$('#foo').change(function() {
    $(this).removeClass("bar");
})

Demo: http://jsfiddle.net/5zhuL/2/

Note that this solution seems to work Webkit-browser's only (Chrome, Opera, Safari) you may need an alternative for others.

查看更多
放荡不羁爱自由
5楼-- · 2019-02-07 10:57

http://jsfiddle.net/ZDgRG/

See above link. I use css to hide the default text and use a label to show what I want:

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];
    }
 };
查看更多
Bombasti
6楼-- · 2019-02-07 10:59

Nope, not possible. This is the standard rendering in Chrome and cannot be changed.

查看更多
相关推荐>>
7楼-- · 2019-02-07 11:01

Only add this CSS to your code. It simply hide the "No file chosen".

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

</style>
查看更多
登录 后发表回答