Javascript 如果是文件\字段,则填写字段名
我有一个嵌套的表格,上面有这个表格:Javascript 如果是文件\字段,则填写字段名,javascript,ruby-on-rails,ruby-on-rails-3,Javascript,Ruby On Rails,Ruby On Rails 3,我有一个嵌套的表格,上面有这个表格: <%= f.fields_for :uploads do |file| %> <%= file.label 'File name :'%> <%= file.text_field :name, :size => "19", :id=>"field" %> <%= file.file_field :file if file.object.new_record?
<%= f.fields_for :uploads do |file| %>
<%= file.label 'File name :'%>
<%= file.text_field :name, :size => "19", :id=>"field" %>
<%= file.file_field :file if file.object.new_record? %>
<p>
<%= file.link_to_remove "Delete" %>
<% end %>
<%= f.link_to_add "Add", :uploads, :class=>"btn" %>
“19”,:id=>“字段”%>
“btn”%>
我希望在用户选择文件时填充文本字段“name”(仅包括名称和扩展名),但我不知道如何使用javascript实现这一点,因为我可以有很多文件字段,而不仅仅是一个
你能帮帮我吗?试试这样:
<%= f.fields_for :uploads do |file| %>
<%= file.label 'File name :'%>
<%= text_field_tag :name, nil, :size => 19 %>
<%= file.file_field :file if file.object.new_record? %>
<%= file.link_to_remove "Delete" %>
<% end %>
<%= f.link_to_add "Add", :uploads, :class=>"btn" %>
19 %>
“btn”%>
如果你想用JS实现这一点,我提出的方法基本上是在你的输入上设置一个数据属性,其中包含你想要填充的值
当视图呈现时,它将在您想要的输入中嵌入数据属性,然后在文档准备好后,您可以使用jQuery选择具有该特定数据属性的所有输入并设置其值
在你看来:
<%= f.fields_for :uploads do |file| %>
<%= file.label 'File name :'%>
<%= file.text_field :name, :size => "19", :id=>"field", :data => { "for-auto-fill" => "some value" } %>
<%= file.file_field :file if file.object.new_record? %>
<p>
<%= file.link_to_remove "Delete" %>
<% end %>
<%= f.link_to_add "Add", :uploads, :class=>"btn" %>
很抱歉JS没有正确突出显示评论。我真的不知道如何绕过它,但我认为内联评论会更清晰。你打算选择一个正确的答案吗?
/* Select all elements with a 'for-auto-fill' data attribute */
$('[for-auto-fill]').each(function(){
/* For each one, set it's value to the value that you set on the data attribute */
$(this).val(($(this).data().forAutoFill));
});