Изменить "файл не выбран":



у меня есть кнопка "Выбрать файл" следующим образом (я использую Jade, но он должен быть таким же, как Html5):



 input(type='file', name='videoFile')


в браузере это показывает кнопку с текстом рядом с ним "нет выбранного файла". Я хотел бы изменить текст "Нет выбранного файла" на что-то другое, например "нет выбранного видео" или "выберите видео, пожалуйста". Я следовал первым предложениям здесь:



Я не хочу видеть "нет выбранного файла" для поля ввода файла



но это не изменило текст:



 input(type='file', name='videoFile', title = "Choose a video please")


может кто-нибудь помочь мне выяснить, где проблема?

1720   15  

15 ответов:

Я уверен, что вы не можете изменить метки по умолчанию на кнопках, они жестко закодированы в браузерах (каждый браузер отображает заголовки кнопок по-своему). Проверьте это кнопка стиль статьи

скрыть ввод с помощью css, добавить метку и назначить ее кнопке ввода. метка будет кликабельной, и при нажатии на нее запустится диалоговое окно файла.

<input type="file" id="files" class="hidden"/>
<label for="files">Select file</label>

затем стиль метки в виде кнопки, если вы хотите.

http://jsfiddle.net/ZDgRG/

см. ссылку выше. Я использую 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), заключается в следующем

  1. скрыть ввод и добавить кнопку "файлы"
  2. затем вызовите кнопку "файлы" и попросите его связать 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 за получение выбранного имени файла

здесь работает скрипка:

http://jsfiddle.net/eamrmoc7/

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>

просто измените ширину входного сигнала. Вокруг 90px

<input type="file" style="width: 90px" />

использование метки с измененным текстом метки

<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

    Ничего не найдено.