从选择输入动态更新列表

时间:2018-07-27 21:02:06

标签: javascript html ruby-on-rails

在我的页面上,我列出了输入数据库的所有报价。我希望能够从下拉框中选择一个用户,以便一旦选择了该用户,便会更新报价列表,以便仅显示该用户的报价。

我遇到的麻烦是我不太熟悉JavaScript,我相信这是大多数人可以解决此问题的方式。我已经有基于用户更新列表的代码,只是我不明白如何使用JavaScript动态更新列表。

我的代码的简要概述:

控制器

if quoted_by = "all"
  # Show every quote
else
  # Show quotes only made by user
end

HTML

<span id="msQuotedBy">
    <b>Filter by Initials: </b>
    <%= select(:msQuotedBy, :select, ['all'] + @initials.collect {|p| [p, p]}, {:selected => @quoted_by}) %>
</span>

JavaScript ,现在我的JavaScript使用以下代码可以很好地动态更新页面上的日历,但是我应该怎么做来更新报价列表?

$('#msQuotedBy_select').change ->
    $('#msCalendar').fullCalendar('rerenderEvents')

控制器显然是不正确的,但这就是逻辑在我脑海中发挥出来的方式。像日历一样,如何使用('#msQuotedBy_select')值更新列表?

1 个答案:

答案 0 :(得分:1)

我可能将对控制器中的特定操作使用AJAX调用,在该操作中,从用户检索报价列表,并使用.js.erb文件进行响应。在此文件中执行以下操作:

<% html_content = j render(partial: 'a_partial_with_the_quotes', locals: { quotes: @user_quotes }) %>
$('#yourListOfQuotesContainer').html("<%= html_content %>);

或者类似的东西(我没有测试过,代码中可能有错误,但这是一般的想法)