获取CSS属性以在Rails变量和数据库中使用

时间:2018-08-22 12:03:20

标签: javascript jquery ruby-on-rails

单击多个按比例放大的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,但是当您查看指南时,它与我想要的有所不同。

主视图图像

enter image description here

1 个答案:

答案 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来为整个文本字段着色。