我有一个按钮“选择文件”如下(我使用的是Jade,但它应该与Html5相同):
input(type='file', name='videoFile')
在浏览器中,这会显示一个按钮,旁边有一个文本“未选择文件”。我想将“无文件选择”文本更改为其他内容,例如“没有选择视频”或“请选择视频”。我在这里遵循了第一个建议:
I don't want to see 'no file chosen' for a file input field
但这样做并没有改变文字:
input(type='file', name='videoFile', title = "Choose a video please")
有人可以帮我找出问题所在吗?
答案 0 :(得分:175)
使用css隐藏输入,添加标签并将其指定给输入按钮。标签将是可点击的,点击后,它将启动文件对话框。
<input type="file" id="files" class="hidden"/>
<label for="files">Select file</label>
然后根据需要将标签设置为按钮。
答案 1 :(得分:15)
见上面的链接。我使用css来隐藏默认文本并使用标签来显示我想要的内容:
<div><input type='file' title="Choose a video please" id="aa" onchange="pressed()"><label id="fileLabel">Choose file</label></div>
input[type=file]{
width:90px;
color:transparent;
}
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];
}
};
答案 2 :(得分:11)
是的,即使您有预先上传的文件列表,也无法删除此“无文件选择”。
我发现的最简单的解决方案(适用于IE,FF,CR)如下
$('.addfiles').on('click', function() { $('#fileupload').click();return false;});
<button class="addfiles">Add Files</button>
<input id="fileupload" type="file" name="files[]" multiple style='display: none;'>
已经完成,完美无缺:)
佛瑞德
答案 3 :(得分:11)
尝试这只是一个技巧
<input type="file" name="uploadfile" id="img" style="display:none;"/>
<label for="img">Click me to upload image</label>
工作原理
这非常简单。 Label元素使用&#34; for&#34;标记以通过id引用表单的元素。在这种情况下,我们使用&#34; img&#34;作为他们之间的参考键。完成后,无论何时单击标签,它都会自动触发表单元素单击事件,这是我们案例中的文件元素单击事件。然后,我们使用display:none而不是visibility:hidden使文件元素不可见,这样它就不会创建空白空间。
享受编码
答案 4 :(得分:10)
我很确定你无法更改按钮上的默认标签,它们在浏览器中是硬编码的(每个浏览器都以自己的方式呈现按钮标题)。看看这个button styling article
答案 5 :(得分:7)
但是,如果您尝试删除此工具提示
<input type='file' title=""/>
这不行。这是我的小技巧,用空格尝试标题。它会起作用。:)
<input type='file' title=" "/>
答案 6 :(得分:6)
$(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">
答案 7 :(得分:3)
这样的事情可以起作用
input(type='file', name='videoFile', value = "Choose a video please")
答案 8 :(得分:3)
.vendor_logo_hide{
display: inline !important;;
color: transparent;
width: 99px;
}
.vendor_logo{
display: block !important;
color: black;
width: 100%;
}
$(document).ready(function() {
// set text to select company logo
$("#Uploadfile").after("<span class='file_placeholder'>Select Company Logo</span>");
// on change
$('#Uploadfile').change(function() {
// show file name
if ($("#Uploadfile").val().length > 0) {
$(".file_placeholder").empty();
$('#Uploadfile').removeClass('vendor_logo_hide').addClass('vendor_logo');
console.log($("#Uploadfile").val());
} else {
// show select company logo
$('#Uploadfile').removeClass('vendor_logo').addClass('vendor_logo_hide');
$("#Uploadfile").after("<span class='file_placeholder'>Select Company Logo</span>");
}
});
});
.vendor_logo_hide {
display: inline !important;
;
color: transparent;
width: 99px;
}
.vendor_logo {
display: block !important;
color: black;
width: 100%;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<input type="file" class="vendor_logo_hide" name="v_logo" id='Uploadfile'>
<span class="fa fa-picture-o form-control-feedback"></span>
<div>
<p>Here defualt no choose file is set to select company logo. if File is selected then it will displays file name</p>
</div>
答案 9 :(得分:1)
<强> HTML 强>
<div class="fileUpload btn btn-primary">
<label class="upload">
<input name='Image' type="file"/>
Upload Image
</label>
</div>
<强> CSS 强>
input[type="file"]
{
display: none;
}
.fileUpload input.upload
{
display: inline-block;
}
注意: Btn btn-primary是一类引导按钮。但是按钮看起来可能处于适当位置。希望你能通过内联css修复它。
答案 10 :(得分:1)
使用带有已更改标签文本的标签
<input type="file" id="files" name="files" class="hidden"/>
<label for="files" id="lable_file">Select file</label>
添加jquery
<script>
$("#files").change(function(){
$("#lable_file").html($(this).val().split("\\").splice(-1,1)[0] || "Select file");
});
</script>
答案 11 :(得分:1)
你可以这样试试:
<div>
<label for="user_audio" class="customform-control">Browse Computer</label>
<input type='file' placeholder="Browse computer" id="user_audio"> <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, ''))
$('.customform-control').hide();
})
感谢@ unlucky13获取所选文件名
这是工作小提琴:
答案 12 :(得分:1)
<div class="field">
<label class="field-label" for="photo">Your photo</label>
<input class="field-input" type="file" name="photo" id="photo" value="photo" />
</div>
和css
input[type="file"]
{
color: transparent;
background-color: #F89406;
border: 2px solid #34495e;
width: 100%;
height: 36px;
border-radius: 3px;
}
答案 13 :(得分:0)
这将帮助您更改“无文件选择选择个人资料图片”
的名称<input type='file'id="files" class="hidden"/>
<label for="files">Select profile picture</label>
答案 14 :(得分:0)
只需更改输入的宽度即可。大约90px
<input type="file" style="width: 90px" />
答案 15 :(得分:0)
我会使用“按钮”而不是“标签”,希望这对某人有所帮助。
这将仅显示一个按钮,用户单击后将弹出文件选择器,选择文件后自动上传。
<button onclick='<%= "$(\"#" + FileUpload1.ClientID + "\").click(); return false;" %>'>The Text You Want</button>
<asp:FileUpload onchange="$('#btnUpload').click();" ID="FileUpload1" runat="server" style="display: none;" />
<asp:Button ID="btnUpload" ClientIDMode="Static" runat="server" OnClick="btnUpload_Click" style="display: none;" />
答案 16 :(得分:0)
您可以使用以下CSS代码隐藏(未选择文件)
HTML
<input type="file" name="page_logo" id="page_logo">
CSS
input[type="file"]:after {color: #fff}
确保颜色匹配背景颜色
答案 17 :(得分:0)
我尝试了所有技巧,但似乎没有任何效果,只是导致将带有 CSS 颜色属性的文本隐藏到 #fff,因为我的背景是 #fff。这是代码:
<input class="form-control upload_profile_pic"
type="file"
name="userfile" class="form-control"
style="color: #fff;">
或
input.form-control.upload_profile_pic {
color: #fff;
}
答案 18 :(得分:0)
input[type=file] {
color: transparent !important;
}
input[type=file]::before {
content: "Attach Your CV: ";
color: black;
margin-right: 10px;
}
<input type="file">
如果要在按钮后显示文字,请使用after
答案 19 :(得分:-1)
有一个很好的例子(包括文件类型验证):
https://github.com/mdn/learning-area/blob/master/html/forms/file-examples/file-example.html
基本上,这是Amos使用按钮的充实版本。
我尝试了上面的一些建议,但都没有成功(但也许就是我)。
我将其重新设置为使用
进行Excel文件转换的目的 <form>
<div>
<label for="excel_converts">Choose a spreadsheet to convert.</label>
<input type="file" id="excel_converts" name="excel_converts" accept=".xlsx, .xls, .csv" >
</div>
<div class="preview">
<p>No spreadsheet currently selected for conversion</p>
</div>
<div>
<button>Submit</button>
</div>
</form>