Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.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多个复选框_Javascript_Ruby On Rails - Fatal编程技术网

使用Javascript动态选择Rails多个复选框

使用Javascript动态选择Rails多个复选框,javascript,ruby-on-rails,Javascript,Ruby On Rails,我按照R实现了一组依赖下拉菜单。 在students->new视图中,当选择了学生的年份时,javascript会计算出该年份可以使用哪些课程,并在新的下拉菜单中提供选择 我的javascript erb文件如下: var courses = new Array(); <% for course in @courses -%> <%for year in course.years -%> courses.push(new Array(<%=

我按照R实现了一组依赖下拉菜单。 在students->new视图中,当选择了学生的年份时,javascript会计算出该年份可以使用哪些课程,并在新的下拉菜单中提供选择

我的javascript erb文件如下:

var courses = new Array();
<% for course in @courses -%>
    <%for year in course.years -%>
        courses.push(new Array(<%= year.year_id%>, '<%=h course.title%>', <%= course.id%>));
    <%end -%>
<% end -%>

function yearSelected() {
    year_id = $('student_year_id').getValue();
    options = $('student_course_ids').options;
    options.length = 1;
    courses.each(function(course) {
        if (course[0] == year_id) {
            options[options.length] = new Option(course[1], course[2]);
        }
    });
    if (options.length == 1) {
        $('course_field').hide();
    } else {
        $('course_field').show();
    }
}

document.observe('dom:loaded', function() {
  yearSelected();
  $('student_year_id').observe('change', yearSelected);
});
我的看法如下:

<% form_for(@student) do |f| %>
  <%= f.error_messages %>

  <p>
    <%= f.label :name %><br />
    <%= f.text_field :name %>
  </p>
  <p>
    <%= f.label :cid, "CID" %><br />
    <%= f.text_field :cid %>
  </p>
  <p>
    <label for="student_year_id">Year:</label>

    <%= collection_select(:student, :year_id, Year.all, :id, :title, {:prompt => true})%>
  </p>

  <p id="course_field">
    <label for="student_course_ids">Course:</label>
    <%= collection_select(:student, :course_ids, Course.find(:all), :id, :title, {:prompt => true}, {:multiple => true})%>

  </p>
  <p>
    <%= f.submit 'Save' %>
  </p>
<% end %>
我想做的是添加复选框,而不是下拉菜单。有什么建议吗?我以前使用过,但无法让它与新的javascript一起工作


干杯

这条线索是否为您指明了正确的方向