我只需要知道当没有选择任何文件时,是否有办法更改Asp:FileUpload
所显示的消息。
感谢。
答案 0 :(得分:4)
见上面的链接。我使用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!";
}
对其他解决方案的改进:
答案 6 :(得分:0)
此功能适用于所有浏览器
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;