Изменить "файл не выбран":
у меня есть кнопка "Выбрать файл" следующим образом (я использую Jade, но он должен быть таким же, как Html5):
input(type='file', name='videoFile')
в браузере это показывает кнопку с текстом рядом с ним "нет выбранного файла". Я хотел бы изменить текст "Нет выбранного файла" на что-то другое, например "нет выбранного видео" или "выберите видео, пожалуйста". Я следовал первым предложениям здесь:
Я не хочу видеть "нет выбранного файла" для поля ввода файла
но это не изменило текст:
input(type='file', name='videoFile', title = "Choose a video please")
может кто-нибудь помочь мне выяснить, где проблема?
15 ответов:
Я уверен, что вы не можете изменить метки по умолчанию на кнопках, они жестко закодированы в браузерах (каждый браузер отображает заголовки кнопок по-своему). Проверьте это кнопка стиль статьи
скрыть ввод с помощью css, добавить метку и назначить ее кнопке ввода. метка будет кликабельной, и при нажатии на нее запустится диалоговое окно файла.
<input type="file" id="files" class="hidden"/> <label for="files">Select file</label>затем стиль метки в виде кнопки, если вы хотите.
см. ссылку выше. Я использую 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]; } };
правильно, нет никакого способа удалить этот "файл не выбран", даже если у вас есть список предварительно загруженных файлов.
самое простое решение, которое я нашел (и работает на IE, FF, CR), заключается в следующем
- скрыть ввод и добавить кнопку "файлы"
- затем вызовите кнопку "файлы" и попросите его связать fileupload (я использую JQuery в этом примере)
$('.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;'>это сделано, работает отлично :)
Фред
но если вы попытаетесь удалить эту подсказку
<input type='file' title=""/>это не будет работать. Вот мой маленький трюк, чтобы работать с этим, попробуйте название с пробелом. Это сработает.:)
<input type='file' title=" "/>
попробуйте это просто трюк
<input type="file" name="uploadfile" id="img" style="display:none;"/> <label for="img">Click me to upload image</label>как это работает
Это очень просто. элемент Label использует тег " for " для ссылки на элемент формы по идентификатору. В этом случае мы использовали "img" В качестве опорного ключа между ними. Как только это будет сделано, всякий раз, когда вы нажимаете на метку, он автоматически запускает событие щелчка элемента формы, которое является событием щелчка элемента файла в нашем случае. Затем мы делаем элемент файла невидимым с помощью display:none и not видимость: скрытый, чтобы он не создавал пустое пространство.
наслаждайтесь кодирования
$(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">
что-то вроде этого может работать
input(type='file', name='videoFile', value = "Choose a video please")
.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>
<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; }
можно попробовать так:
<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 за получение выбранного имени файла
здесь работает скрипка:
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-это класс кнопки начальной загрузки. Однако кнопка может выглядеть weired в положении. Надеюсь, вы можете исправить это с помощью встроенного css.
Это поможет вам изменить имя для "no file choose to Select profile picture"
<input type='file'id="files" class="hidden"/> <label for="files">Select profile picture</label>
использование метки с измененным текстом метки
<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>
Comments