Как вы можете динамически добавлять/удалять новое поле ввода в форме без использования частичного.Добавить новое поле в форму
<%= f.fields_for :list_entries do |list_entry| %>
<div id="entries">
<div class="control-group" id="new_entry">
<%= list_entry.label :description, 'Description:', class: "control-label mandatory_field"%>
<div class="controls">
<%= list_entry.text_field(:description, class: "m-wrap col-lg-8")%>
</div>
</div>
<a href="javascript:;" id="addNewEntry">Add Entry</a>
</div>
<% end %>
...
<script>
$(document).ready(function(){
$('#addNewEntry').click(function(){
$('#entries').append()
});
$('#entries').on('click', '#list_entry', function(){
$(this).closest('.control-group').remove();
});
});
</script>
Я не уверен, что положить в Append. Если я добавлю HTML-код в append, fields_for
list_entry
не переносится. То же самое произошло, когда я использовал частичное. Я не хочу использовать драгоценный камень кокона, так как это бесконечно малая часть моего приложения.
Любые идеи ...?
Вы должны помнить, что шаблон ERB в ваш первый блок кода запускается на сервере для генерации raw html. Javascript во втором куске кода запускается в клиенте и может работать только с сырым html - он никогда не видит ваш код rails, который генерирует html. Поэтому, размышляя о том, что вы хотите от javascript, вам нужно посмотреть на html, который у вас есть на странице, и что вы можете с ним делать. В этом случае у вас может быть фиктивный, скрытый, бит html, который клонирует javascript, изменяет некоторые атрибуты и затем добавляется в список полей. –