如何从Chrome中的文件输入中删除“未选择文件”工具提示?

时间:2012-08-20 09:42:05

标签: javascript jquery html css google-chrome

我想从Google Chrome中的文件输入中删除“未选择文件”工具提示(我发现Firefox中没有显示工具提示)。

请注意,我所说的不是输入字段内的文字,而是关于将鼠标移到输入上时出现的工具提示。

我试过这个没有运气:

$('#myFileInput').attr('title', '');

24 个答案:

答案 0 :(得分:55)

这是 webkit 浏览器的原生部分,您无法将其删除。你应该考虑像覆盖隐藏文件输入这样的hacky解决方案。

hacky 解决方案:

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, ''))
})    

<强> Fiddle

答案 1 :(得分:49)

对我来说,我只是希望文本不可见,仍然使用原生浏览器按钮。

input[type='file'] {
  color: transparent;
}

我喜欢所有undefined的建议,但我有一个不同的用例,希望这可以帮助处于相同情况的人。

答案 2 :(得分:42)

默认工具提示可以使用标题属性

进行编辑
<input type='file' title="your text" />

但是,如果您尝试删除此工具提示

<input type='file' title=""/>

这不行。这是我的小技巧,用空格尝试标题。它会起作用。:)

<input type='file' title=" "/>

答案 3 :(得分:8)

您可以禁用工具提示,在Chromekit等webkit浏览器上设置空格,在Firefox或IE上设置空字符串(在Chrome 35,FF 29,IE 11,Safari手机上测试)

$('input[type="file"]').attr('title', window.webkitURL ? ' ' : '');

答案 4 :(得分:5)

我找到了一个解决方案,只需在title属性中设置一个空格即可。

<input type="file" value="" title=" " />

答案 5 :(得分:5)

非常简单,忘记针对输入[&#34;类型&#34;]的CSS,它对我不起作用。我不知道为什么。我的HTML标签中有我的解决方案

<input type="file" style="color:transparent; width:70px;"/>

问题的结束

答案 6 :(得分:5)

这个适用于我(至少在Chrome和Firefox中):

<input type="file" accept="image/*" title="&nbsp;"/>

答案 7 :(得分:4)

这是一个棘手的问题。我找不到选择'no file selected'元素的方法,所以我使用:after伪选择器创建了一个掩码。

我的解决方案还需要使用以下伪选择器来设置按钮的样式:

::-webkit-file-upload-button

试试这个:http://jsfiddle.net/J8Wfx/1/

仅供参考:这只适用于webkit浏览器。

如果有人知道如何在webkit检查器中查看上面的webkit伪选择器,请告诉我

答案 8 :(得分:4)

这里的所有答案都完全过于复杂,或者完全错误。

HTML:

<div>
    <input type="file" />
    <button>Select File</button>
</div>

的CSS:

input {
    display: none;
}

的javascript:

$('button').on('click', function(){
   $('input').trigger('click'); 
});

http://jsfiddle.net/odfe34n8/

我以最简单的方式创造了这个小提琴。单击“选择文件”按钮将显示文件选择菜单。然后,您可以按照自己想要的方式设置按钮的样式。基本上,您需要做的就是隐藏文件输入,并在单击另一个按钮时触发合成单击。我在IE 9,FF和Chrome上进行了测试,它们都运行良好。

答案 9 :(得分:4)

所有浏览器都很简单。这为我做了

p
$(function () {
     $('input[type="file"]').change(function () {
          if ($(this).val() != "") {
                 $(this).css('color', '#333');
          }else{
                 $(this).css('color', 'transparent');
          }
     });
})
input[type="file"]{
    color: transparent;
}

答案 10 :(得分:3)

为了达到这个目的,您需要自定义控件。

请按照指南:http://www.quirksmode.org/dom/inputfile.html

进行操作

答案 11 :(得分:2)

包裹并隐身。 在Chrome,Safari&amp;&amp ;;中工作FF。

&#13;
&#13;
label { 
  padding: 5px;
  background: silver;
}
label > input[type=file] {
    display: none;
}
&#13;
<label>
  <input type="file">
  select file
</label>
&#13;
&#13;
&#13;

答案 12 :(得分:1)

最好避免使用不必要的javascript。您可以利用label标签扩展输入的点击目标,如下所示:

<label>
  <input type="file" style="display: none;">
  <a>Open</a>
</label>

即使输入被隐藏,链接仍然可以作为它的点击目标,你可以根据需要设置它的样式。

答案 13 :(得分:1)

直接您无法对输入[type = file]进行太多修改。

使输入类型文件不透明度:0并尝试使用自定义CSS在其上放置相对元素[div / span / button]

试试这个 http://jsfiddle.net/gajjuthechamp/pvyVZ/8/

答案 14 :(得分:1)

即使您将不透明度设置为零,也会显示工具提示。在元素上尝试visibility:hidden。它对我有用。

答案 15 :(得分:1)

-webkit-appearance:一个去。值得一试。

http://css-infos.net/property/-webkit-appearance

希望有所帮助:)

答案 16 :(得分:0)

结合上面的一些建议,使用jQuery,这就是我所做的:

input[type='file'].unused {
  color: transparent;
}

$(function() {
  $("input[type='file'].unused").click( function() {$(this).removeClass('unused')});
};

将类“未使用”放在文件输入上。这很简单,效果很好。

答案 17 :(得分:0)

我为此寻找好的答案......我发现了这个:

首先删除'no file selected'

input[type="file"]{
font-size: 0px;
}

然后使用-webkit-file-upload-button处理按钮,这样:

input[type="file"]::-webkit-file-input-button{
font-size: 16px; /*normal size*/
}

希望这是你想要的,它对我有用。

答案 18 :(得分:0)

对我来说,最好的解决方案是将输入[type =&#34; file&#34;]包装在一个包装器中,并添加一些jquery代码:

&#13;
&#13;
$(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);
    });
});
&#13;
#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;
}
&#13;
<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>
&#13;
&#13;
&#13;

答案 19 :(得分:0)

您可以为元素设置一个宽度,该宽度仅显示按钮,并隐藏“无文件选择”。

答案 20 :(得分:0)

对我有用!

input[type="file"]{
  font-size: 0px;
}

然后,您可以使用不同类型的样式,例如widthheight或其他属性来创建自己的输入文件。

答案 21 :(得分:0)

惊讶地发现没有人提及event.preventDefault()

$("input[type=file]").mouseover(function(event) {
    event.preventDefault();
    // This will disable the default behavior of browser
 });

答案 22 :(得分:0)

我知道这有点麻烦,但是我所要做的就是在样式表中将颜色设置为透明-内联看起来像这样的style =“ color:transparent;”。

答案 23 :(得分:0)

隐藏工具提示的最佳选择是结合以下属性:

  1. 在输入上:color:white;(如果背景是白色以掩盖文本的颜色,如果是另一种颜色,则使用该颜色)。

  2. 如果输入旁边有任何其他元素,请使用 position: absolute; 将元素放置在工具提示上方 *(小心让按钮可见,只隐藏工具提示)