首页 > 解决方案 > 如何在 Ruby on Rails 表单中添加 document.getElementById 值?

问题描述

页面加载后,脚本标签内会生成一个动态值(foo_value)。我希望在表单中显示该值,因此当用户填写表单时,包括动态值在内的所有内容都将存储在模型中。

foo_value 是动态的,可以在用户提交表单之前更改。

当我检查document.getElementById('foo_value').value. 但它并没有出现在text_field.

<%= form_with(model: fooLand) do |form| %>
  <div class="field">
    <%= form.label :foo %>
    <%= form.text_field :foo, value: "", id: :foo_value %>
  </div>
  ...
<% end %>
<script>
function generateFooValue() {
    ... //code to generate foo_value
    document.getElementById('foo_value').value = foo_value;
}
</script>

我尝试过的其他语法text_field

<%= form.text_field :foo, value:"", id: :foo_value %>

<%= form.text_field :foo, id: :foo_value %>

<%= form.text_field :foo, id: "foo_value" %>

<%= form.text_field :foo, value: :foo_value %>

标签: ruby-on-railsgetelementbyid

解决方案


 <body onload="myFunction()">
    <%= form_with url: '/testing', method: :get, local: true do |form| %>
      <div class="field">
        <%= form.label :foo %>
        <%= form.text_field :foo, value: "", id: :foo_value %>
      </div>
   <% end %>
 </body>


<script>
  function myFunction() {
    document.getElementById("foo_value").value = 'x';
  }
</script>

更新了我在 Rails 应用程序中尝试过的内容。它在我的浏览器中非常适合我。当我打开页面时,“x”出现在文本字段中。


推荐阅读