单击多个按比例放大的div时,我得到了css属性。
但是,我想将导入的css属性存储在Rails变量和DB中。
我想要的最后一件事是在单击它们时获得Css属性,并让它们自动填充表单。这些数据存储在名为color的列中。
我尝试的代码是:
$(document).ready(function() {
$(".scale-up-center").click(function() {
var color = $(".scale-up-center").css("background-color");
$(".first_scale").css("background-color", color);
})
})
我听说您可以使用ajax,但是当您查看指南时,它与我想要的有所不同。
主视图图像
答案 0 :(得分:0)
您的方法有点脆弱。更改CSS颜色后,数据库中仍然有旧的无效颜色。用户还可以操纵表单值以注入不需要的颜色。您没有清楚地分离自己的表示形式和逻辑。
相反,请在模型中为所有可用颜色定义一些常数。还要验证传入的值是有效颜色之一:
class Post < ActiveRecord::Base
COLORS = ["none", "red", "green", "blue"]
validates :color, inclusion: { in: COLORS }
end
在您看来,让用户通过单选按钮选择颜色:
<%= form_for @post do |f| %>
<%= label :color %>
<% Post::COLORS.each do |c| %>
<div class="color-<%= c %>">
<%= f.radio_button :color, c %>
</div>
<% end %>
<%= f.submit "Update" %>
<% end %>
现在您可以在CSS中定义表示形式:
form .color-red {
background-color: #FF0000;
}
// ...
您仍然可以添加一些JavaScript来为整个文本字段着色。