How to Modify the File Selector Display in Bootstrap?

Susan Sarandon
Release: 2024-10-31 09:27:30
Original
433 people have browsed it

How to Modify the File Selector Display in Bootstrap?

Bootstrap File Input: Modifying File Selector Display

When utilizing Bootstrap 4's file browser, you may encounter the issue of displaying the default "Choose file..." text. This text is set using CSS in the .custom-file-control element, which can be difficult to modify using JavaScript.

Bootstrap 5

In Bootstrap 5, custom file input has been removed. Therefore, modifying the file selector display requires custom CSS or JavaScript techniques.

Bootstrap 4.4

To display the selected filename in Bootstrap 4.4, JavaScript can be used:

<code class="javascript">document.querySelector('.custom-file-input').addEventListener('change',function(e){
  var fileName = document.getElementById("myInput").files[0].name;
  var nextSibling = e.target.nextElementSibling;
  nextSibling.innerText = fileName;
});</code>
Copy after login

Bootstrap 4.1

In Bootstrap 4.1 onwards, the "Choose file..." placeholder is set in the .custom-file-label element:

<code class="html"><label class="custom-file-label" for="exampleInputFile">
  Select file...
</label></code>
Copy after login

Changing the button text can be done with CSS:

<code class="css">.custom-file-input ~ .custom-file-label::after {
  content: "Button Text";
}</code>
Copy after login

Original Answer (Bootstrap 4 Alpha 6)

To modify the initial placeholder and button text, CSS can be utilized:

<code class="css">#customFile .custom-file-control:lang(en)::after {
  content: "Select file...";
}
#customFile .custom-file-control:lang(en)::before {
  content: "Click me";
}</code>
Copy after login

To retrieve the selected filename and update the display, JavaScript can be used:

<code class="javascript">$('.custom-file-input').on('change',function(){
  var fileName = $(this).val();
});</code>
Copy after login

However, as the placeholder text is a pseudo element, JavaScript cannot directly modify it. A workaround is to add a CSS class that hides the pseudo content and place the filename in the .form-control-file span:

<code class="css">.custom-file-control.selected:lang(en)::after {
  content: "" !important;
}</code>
Copy after login
<code class="javascript">$('.custom-file-input').on('change',function(){
  var fileName = $(this).val();
  $(this).next('.form-control-file').addClass("selected").html(fileName);
});</code>
Copy after login

The above is the detailed content of How to Modify the File Selector Display in Bootstrap?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!