Как я могу отправить значение поля выбора в JavaScript в рельсы - PullRequest
0 голосов
/ 22 февраля 2019

Я получил следующий код, который мне нужен, когда люди выбирают ОПЦИИ, а затем показывают кнопку Добавить опцию

<%= f.fields_for :questions do |question_form| %>
    <%= question_form.text_field :question_text %>
    <%= question_form.select :question_type, [ 'TEXT', 'OPTIONS', 'UPLOAD' ], :prompt => 'Select One', :id => "my_id", :onchange => "myFunction()" %>
    <%= question_form.link_to_remove "Remove this Question" %>
    <%= question_form.fields_for :options do |option_form| %>
        <%= option_form.text_field :option_text %>
        <%= option_form.link_to_remove "Remove this option" %>
    <% end %>
    <p id = "test" hidden><%= question_form.link_to_add "Add a option", :options %></p>
    <script>
    function myFunction(){
        var x = document.getElementById("my_id").value;
        if (x == "OPTIONS") {
                document.getElementById("test").hidden = false;
        }
    }
    </script>
<% end %>

1 Ответ

0 голосов
/ 22 февраля 2019

Прежде всего, вы не можете отправить значение из Rails в Js во время выполнения Js.В этот момент вы уже находитесь в контексте браузера, если вы не спросите что-то через Ajax на ваш сервер.

В этом случае все может и должно быть сделано в контексте вашего браузера.Просто измените эту строку:

var x = document.getElementById("my_id").value

Для:

var e = document.getElementById("my_id");
var x = e.options[e.selectedIndex].value;

Это должно сработать.

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