JQuery Not Setting Rails 5.2 Значение скрытого поля - PullRequest
0 голосов
/ 13 января 2020

У меня довольно простая настройка в 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 остается пустым.

Кто-нибудь может увидеть, что я делаю неправильно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...