我想从Google Chrome浏览器的文件输入中删除“未选择文件”工具提示(我发现Firefox中没有显示工具提示)。
请注意,我并不是在说输入字段中的文本,而是在将鼠标移到输入上方时出现的工具提示。
我没有运气尝试过这个:
$('#myFileInput').attr('title', '');
我想从Google Chrome浏览器的文件输入中删除“未选择文件”工具提示(我发现Firefox中没有显示工具提示)。
请注意,我并不是在说输入字段中的文本,而是在将鼠标移到输入上方时出现的工具提示。
我没有运气尝试过这个:
$('#myFileInput').attr('title', '');
Answers:
这是Webkit浏览器的本机部分,您无法删除它。您应该考虑一种骇人听闻的解决方案,例如覆盖或隐藏文件输入。
一个哈克的解决方案:
input[type='file'] {
opacity:0
}
<div>
<input type='file'/>
<span id='val'></span>
<span id='button'>Select File</span>
</div>
$('#button').click(function(){
$("input[type='file']").trigger('click');
})
$("input[type='file']").change(function(){
$('#val').text(this.value.replace(/C:\\fakepath\\/i, ''))
})
可以使用title属性来编辑默认的工具提示
<input type='file' title="your text" />
但是,如果您尝试删除此工具提示
<input type='file' title=""/>
这行不通。这是我的小技巧,请尝试使用标题加上空格。它将起作用。
<input type='file' title=" "/>
您可以禁用工具提示来设置标题,该标题在Chrome浏览器(如Chrome)的webkit浏览器上带有空格,而在Firefox或IE上则为空字符串(在Chrome 35,FF 29,IE 11,Safari浏览器上经过测试)
$('input[type="file"]').attr('title', window.webkitURL ? ' ' : '');
这里的所有答案都过于复杂,否则完全是错误的。
的HTML:
<div>
<input type="file" />
<button>Select File</button>
</div>
CSS:
input {
display: none;
}
javascript:
$('button').on('click', function(){
$('input').trigger('click');
});
我以最简单的方式创建了这个小提琴。单击选择文件按钮将弹出文件选择菜单。然后,您可以按任何需要的方式对按钮进行样式化。基本上,您所需要做的就是隐藏文件输入,并在单击另一个按钮时触发对它的综合单击。我在IE 9,FF和Chrome上进行了现场测试,它们都可以正常工作。
这是一个棘手的问题。我找不到选择“未选择文件”元素的方法,所以我使用:after伪选择器创建了一个掩码。
我的解决方案还需要使用以下伪选择器来设置按钮的样式:
::-webkit-file-upload-button
试试这个:http : //jsfiddle.net/J8Wfx/1/
仅供参考:这仅在webkit浏览器中有效。
PS:如果有人知道如何像在Webkit检查器中一样查看Webkit伪选择器,请告诉我
跨所有浏览器而简单。这为我做到了
$(function () {
$('input[type="file"]').change(function () {
if ($(this).val() != "") {
$(this).css('color', '#333');
}else{
$(this).css('color', 'transparent');
}
});
})
input[type="file"]{
color: transparent;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="file" name="app_cvupload" class="fullwidth input rqd">
要实现此目的,您将需要大量自定义控件。
请按照以下指南进行操作:http : //www.quirksmode.org/dom/inputfile.html
即使将不透明度设置为零,也会出现工具提示。试穿visibility:hidden
元素。它为我工作。
直接地,您不能对input [type = file]进行太多修改。
使输入类型文件的不透明度为0,并尝试使用自定义CSS在其上放置一个相对元素[div / span / button]
对我而言,最好的解决方案是将输入[type =“ file”]包装在包装器中,并添加一些jquery代码:
$(function(){
function readURL(input){
if (input.files && input.files[0]){
var reader = new FileReader();
reader.onload = function (e){
$('#uploadImage').attr('src', e.target.result);
}
reader.readAsDataURL(input.files[0]);
}
}
$("#image").change(function(){
readURL(this);
});
});
#image{
position: absolute;
top: 0;
left: 0;
opacity: 0;
width: 75px;
height: 35px;
}
#uploadImage{
position: relative;
top: 30px;
left: 70px;
}
.button{
position: relative;
width: 75px;
height: 35px;
border: 1px solid #000;
border-radius: 5px;
font-size: 1.5em;
text-align: center;
line-height: 34px;
}
<form action="#" method="post" id="form" >
<div class="button">
Upload<input type="file" id="image" />
</div>
<img id="uploadImage" src="#" alt="your image" width="350" height="300" />
</form>
我想出了一个骇人听闻的解决方案,该解决方案可完全删除“未选择文件”以及该文本后添加的额外空间(在Chrome中,我会看到类似“未选择文件”的内容)。
这完全弄乱了我的页面对齐方式,因此我非常努力地寻找解决方案。在输入标签的style属性内,将“ width”设置为按钮的宽度将消除尾随的文本和空格。由于按钮的宽度在所有浏览器中都不相同(例如,在Firefox中稍小),因此您还需要将样式的颜色设置为与页面背景相同的颜色(否则为“否”可能会显示出来)。我的输入文件标签如下所示:
<input style="float:left; **width:88px;** **color:#000000;**" type="file" id="fileInput" onclick="fileOpen()">