Использование collection_select () для фильтрации событий на fullCalendar ()

На моей странице я использую раскрывающийся список, чтобы фильтровать, какие события отображаются на моем fullCalendar(). Мой код выглядит следующим образом:

JavaScript

$(document).ready - >
  $("#msCalendar").fullCalendar({
    header: left: "prev today"
    center: "title"
    right: "month,basicWeek next"
    editable: true
    events: "marketingSchedule"
    eventRender: (event, element, view) - >
      return ['all', event.quoted_by].indexOf($('#msQuotedBy').val()) >= 0
    eventClick: (event) - >
      setTimeout(- >
        eventClickFunction(event)
      )
  })

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

HTML

<span id="msQuotedBySearch">
  <b>Filter by Initials: </b>
  <select id="msQuotedBy">
    <option value="all">All</option>
    <option value="ZR">ZR</option>
    <option value="TM">TM</option>
    <option value="jh">jh</option>
    <option value="TD">TD</option>
    <option value="LG">LG</option>
    <option value="BCS">BCS</option>
    <option value="DLH">DLH</option>
    <option value="jr">jr</option>
    <option value="CP">CP</option>
    <option value="LR">LR</option>
    <option value="SA">SA</option>
    <option value="TN">TN</option>
    <option value="DB">DB</option>
    <option value="TF">TF</option>
    <option value="dev">dev</option>
    <option value="BK">BK</option>
  </select>
</span>

Используя эти два блока кода, мой календарь обновляется правильно. Очевидно, что HTML должен быть лучше, поскольку он не обновляет выпадающее поле динамически с помощью пользователей из базы данных.

Я пробовал это в своем HTML, и он правильно заполняет раскрывающийся список, но он больше не обновляет календарь.

<span id="msQuotedBy">
  <b>Filter by Initials: </b>
  <%= collection_select(:user, :initials, User.all, :id, :initials) %>
</span>

Любые идеи о том, как фильтровать мой календарь, используя collection_select(), или, возможно, другой метод?

javascript,html,ruby-on-rails,fullcalendar,

0

Ответов: 1


1 принят

В вашем втором примере (с использованием Rails) возникает проблема:

<span id="msQuotedBy">

В вашем примере с ручным кодированием «msQuotedBy» является идентификатором select, а не span. В JS $('#msQuotedBy').val()пытается прочитать из HTML-элемента, который имеет идентификатор msQuotedBy и получает его значение. <spansне имеют значений, но <selectsделайте.

Вы перевернули его, переместив идентификатор на другой элемент. Идентификаторы должны однозначно идентифицировать элемент (следовательно, «ID») - перемещение его случайно происходит с запросом о проблемах.

Убедитесь, что ваш код Rails устанавливает правильный идентификатор, <selectкогда он его создает. Из вашего комментария, правильный общий код должен быть:

<span id="msQuotedBySearch">
  <b>Filter by Initials: </b>
  <%= collection_select(:msQuotedBy, :select, User.all, :initials, :initials) %>
</span>
JavaScript, HTML, рубин-на-рельсы, fullcalendar,
Похожие вопросы