Ruby on rails 自定义ruby on rails上的文件\字段按钮
我试图摆脱丑陋的按钮轨道作为默认的文件上传。我想添加一个字形图标Ruby on rails 自定义ruby on rails上的文件\字段按钮,ruby-on-rails,ruby,twitter-bootstrap-3,Ruby On Rails,Ruby,Twitter Bootstrap 3,我试图摆脱丑陋的按钮轨道作为默认的文件上传。我想添加一个字形图标 <%= f.file_field :image_url, class:"glyphicon glyphicon-camera" %> 这不起作用,我在本页上看到的不同帖子中尝试了其他方法,但它们没有附加文件。正如这里所建议的,您可以使用Bootstrap的文件样式来设置文件上载按钮的样式 步骤1:将其添加到布局application.html.erb 我已经从CDN中添加了引导文件样式库。您应该确保同时加载了
<%= f.file_field :image_url, class:"glyphicon glyphicon-camera" %>
这不起作用,我在本页上看到的不同帖子中尝试了其他方法,但它们没有附加文件。正如这里所建议的,您可以使用Bootstrap的文件样式来设置文件上载按钮的样式
步骤1:将其添加到布局application.html.erb
我已经从CDN中添加了引导文件样式库。您应该确保同时加载了JQuery和Boostrap
步骤3:然后您的图像\u url
文件字段可能如下所示:
<%= f.file_field :image_url,class: "filestyle", "data-input" => false %>
false%>
您还可以使用:-
add file field and hide this field :-
<%= f.file_field :image_url ,:onchange=>"loadFile(event)",id: "upload-it", class: "hide_input"%>
add one div with class:"glyphicon glyphicon-camera" :-
<div class="glyphicon glyphicon-camera" id="image-output",:onclick="upload_it(event)"></div>
use script:-
<script>
var loadFile = function(event) {
var output = document.getElementById('image-output');
output.src = URL.createObjectURL(event.target.files[0]);
};
function upload_it(){
$("#upload-it").click();
};
</script>
添加文件字段并隐藏此字段:-
“加载文件(事件)”,id:“上载”,类:“隐藏输入”%>
添加一个具有类“glyphicon glyphicon camera”的div:-
使用脚本:-
var loadFile=函数(事件){
var output=document.getElementById('image-output');
output.src=URL.createObjectURL(event.target.files[0]);
};
函数upload_it(){
$(“#上传”)。单击();
};
您可以使用css来完成
HTML:
<div class="image-upload">
<label for="file-input">
<span class="glyphicon glyphicon-camera"></span>
</label>
<%= f.file_field :image_url, id:"file-input" %>
</div>
.image-upload > input
{
display: none;
}
.image-upload > label{
cursor:pointer;
}
你可以找到工作示例检查这个,我以前看到过这个答案,但我的:image\u url到底在哪里,我尝试将它放在不同的位置,但图片没有上传@pavant这将所有内容替换为图标(好)坏没有ui反馈(坏),因此用户看不到已附加用于上传的文件。在我看来,这是一个有效的解决方案,它应该包括一种自动触发上传的方法(因此不需要额外的反馈)或显示哪个文件已经准备好上传只要发现在更改时添加
:“this.form.submit()”
到文件\u字段
将在选择时自动上传。@estani the(坏)答案中没有包含一些JS,因为OP没有要求它的安全性,我只是认为最好事先知道这种解决方案的局限性。OP确实想要一些有效的东西,所以他/她需要找到一个解决方案,所以我认为最好说出来。我的2c。没问题,我只是澄清了我的立场,我不介意建议。干杯
<div class="image-upload">
<label for="file-input">
<span class="glyphicon glyphicon-camera"></span>
</label>
<%= f.file_field :image_url, id:"file-input" %>
</div>
.image-upload > input
{
display: none;
}
.image-upload > label{
cursor:pointer;
}