Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Rails简单表单基于Select更新Div_Javascript_Ruby On Rails_Simple Form - Fatal编程技术网

Javascript Rails简单表单基于Select更新Div

Javascript Rails简单表单基于Select更新Div,javascript,ruby-on-rails,simple-form,Javascript,Ruby On Rails,Simple Form,我试图用用户在下拉列表中选择的值更新div中的文本,使用Rails5上的简单表单。它应该是这样工作的,但我不能让它以简单的形式工作: 这是两个下拉列表的ERB。第一个下拉列表有效,但第二个不起作用 <select id="select1"> <option>Option 1</option> <option>Option 2</option> </select> <%= f.input :service_na

我试图用用户在下拉列表中选择的值更新div中的文本,使用Rails5上的简单表单。它应该是这样工作的,但我不能让它以简单的形式工作:

这是两个下拉列表的ERB。第一个下拉列表有效,但第二个不起作用

<select id="select1">
  <option>Option 1</option>
  <option>Option 2</option>
</select>

<%= f.input :service_name, collection: @my_services, label_method: :service_name, value_method: :service_name, id: "select2" %>

<div id="result1"></div>
<div id="result2"></div>

<script>
  $(document).ready(function(){
    $('#select1').change(function(){
      $selected_value=$('#select1 option:selected').text();
      $('#result1').text($selected_value);
    });

  $('#select2').change(function(){
    $selected_value=$('#select2 option:selected').text();
    $('#result2').text($selected_value);
  });
});

事实证明,简单形式的id:select2并没有覆盖生成的id服务名称。相反,必须使用input_html,以使以下功能正常工作:

= f.input :service_name, collection: @my_services, input_html: {id: "select2"}

这里说明了这一点:

这与rails无关,但与Javascript无关。顺便说一句:如果你是rails新手,我不建议你使用简单表单。请将Slim模板中呈现的原始HTML添加到你的问题中。我添加了一个使用HTML的下拉列表和另一个使用简单表单的下拉列表,但后者不起作用
= f.input :service_name, collection: @my_services, input_html: {id: "select2"}