简体   繁体   English

如何在Rails的表单中使用javascript变量

[英]How to use javascript variables in forms in Rails

I'm getting the css property of the div through a click event. 我通过click事件获取div的css属性。

I want to use saved properties in the input form. 我想在输入表单中使用保存的属性。

I have already created a color column in the database, and I want to know how to apply a var color declared in Javascript to a partial view (_form.html.erb). 我已经在数据库中创建了颜色列,并且我想知道如何将Javascript中声明的var颜色应用于局部视图(_form.html.erb)。

index.html.erb (home controller) index.html.erb(主控制器)

<%= render partial: 'posts/form', locals: { post: @post } %>

$(document).ready(function() {
        $(".scale-up-center").click(function() {
            var color = $(".scale-up-center").css("background-color");
            $(".first_scale").css("background-color", color);
        })
    })

<div class=".scale-up-center", style="background-color:red;"></div>
<div class=".first_scale"></div>

_form.html.erb (Posts Controller) _form.html.erb(帖子控制器)

  <div class="field">
    <%= form.label :color %>
    <%= form.text_area :color %>
  </div>

I'm not sure I understand your question correctly. 我不确定我是否正确理解您的问题。 Do you want to render the input box with a colour stored in your database? 您是否要使用存储在数据库中的颜色来呈现输入框? In that case you could style the element you want using 在这种情况下,您可以设置要使用的元素的样式

<div style="background: <%= model.colour_field %>;">

_form.html.erb (Posts Controller) _form.html.erb(帖子控制器)

  <div class="field">
    <%= form.label :color %>
    <%= form.text_area :color, id: 'post_color' %>
  </div>

Set Color value using javascript on click function 使用javascript on click功能设置颜色值

$(document).ready(function() {
        $(".scale-up-center").click(function() {
            var color = $(".scale-up-center").css("background-color");
            $(".first_scale").css("background-color", color);
            //set post's color value
            $("#post_color").val(color); 
        })
    })

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM