У меня довольно простая настройка в Rails 5.2 simple_form
, в которой JQuery должен установить hidden_field
в зависимости от того, какой селектор div выбран. Html / erb выглядит так:
<%= simple_form_for(@source) do |f| %>
...
<div class="row justify-content-center">
<div id="selector-journal" class="selector active">Journal Article</div>
<div id="selector-book" class="selector">Book</div>
<div id="selector-website" class="selector">Website</div>
<%= f.hidden_field :source_type, id: "source" %>
</div> <!-- row -->
...
<% end %>
И JQuery выглядит так:
<script>
$(document).ready(function() {
$('.mdb-select').materialSelect();
$('.datepicker').pickadate();
tinymce.init({
selector: "textarea", // change this value according to your HTML
plugins: "code",
toolbar: "code",
menubar: "tools"
});
if ($("#source").val("") ) {
$('.selector').removeClass("active");
};
if ($("#source").val( "Journal") ){
$('#selector-journal').addClass("active");
} else if ($("#source").val( "Book") ){
$('#selector-book').addClass("active");
} else if ($("#source").val( "Website") ){
$('#selector-website').addClass("active");
}
$('#selector-journal').click(function(){
$('.selector').removeClass("active");
$('#selector-journal').addClass("active");
$('.source-info-section').addClass("hidden");
$('#journal-info').removeClass("hidden");
$('#source').val("Journal");
});
$('#selector-book').click(function(){
$('.selector').removeClass("active");
$('#selector-book').addClass("active");
$('.source-info-section').addClass("hidden");
$('#book-info').removeClass("hidden");
$('#source').val("Book");
});
$('#selector-website').click(function(){
$('.selector').removeClass("active");
$('#selector-website').addClass("active");
$('.source-info-section').addClass("hidden");
$('#website-info').removeClass("hidden");
$('#source').val("Website");
});
});
</script>
Я проверяю в консоли Google и появляется слово value
, но никогда на самом деле получает значение. Когда я сохраняю запись, поле source_type
остается пустым.
Кто-нибудь может увидеть, что я делаю неправильно?