克服 Bootstrap 4 文件输入的挑战
在 Bootstrap 4 中,文件浏览器显示持久文本“选择文件...”尽管选择了文件。此问题源于自定义文件控件 CSS 类中的隐藏值。虽然可以使用 JavaScript 检索所选文件的值,但更改占位符文本可能会更加复杂。
自定义占位符文本和按钮显示 (Bootstrap 4.1 )
随着 Bootstrap 4.1 的引入,“选择文件...”占位符位于自定义文件标签类中。要修改此文本,只需添加自定义 CSS 或 SASS,如下所示:
<code class="css">.custom-file-input ~ .custom-file-label::after { content: "Button Text"; }</code>
解决隐藏占位符值
Bootstrap 4 Alpha 6(原始答案) )
1.修改初始占位符和按钮文本:
初始占位符和按钮文本存储在 CSS 伪元素中。要自定义它们,请分别使用 :lang(en)::after 和 :lang(en)::before 选择器覆盖默认值。
<code class="css">#customFile .custom-file-control:lang(en)::after { content: "Select file..."; } #customFile .custom-file-control:lang(en)::before { content: "Click me"; }</code>
2.检索选定的文件名并更新输入:
选择文件后,可以使用 JavaScript 获取其名称。但是,由于占位符是伪元素,因此无法通过 JavaScript 直接操作它。相反,创建一个额外的 CSS 类来在选择文件后隐藏占位符:
<code class="css">.custom-file-control.selected:lang(en)::after { content: "" !important; }</code>
选择文件后,使用 jQuery 切换 .custom-file-control 上的 .selected 类来隐藏占位符并显示文件名:
<code class="javascript">$('.custom-file-input').on('change',function(){ var fileName = $(this).val(); $(this).next('.form-control-file').addClass("selected").html(fileName); })</code>
Bootstrap 5
自定义文件输入已在 Bootstrap 5 中删除。要更改占位符文本,您可以使用 JavaScript 或自定义 CSS。例如:
<code class="css">.custom-file-input::after { content: "Button Text"; }</code>
以上是如何自定义 Bootstrap 4 文件输入中的“选择文件...”占位符?的详细内容。更多信息请关注PHP中文网其他相关文章!