Как использовать JQuery datepicker в простом приложении Rails? - PullRequest
1 голос
/ 14 июня 2010

Я новичок, когда дело доходит до Ruby On Rails (и веб-программирования в целом). Я родом из типичного рабочего стола программирования. Я написал пару простых приложений rails, но это моя первая попытка использования Rails3 и первое использование jQuery.

У меня проблемы с пониманием того, как подключить мой jQuery datepicker к моему Rails-приложению. Я уверен, что я просто не понимаю чего-то базового, поэтому, пожалуйста, исправьте все, что вы видите неправильно в моем коде, или укажите на хороший справочник, объясняющий это.

Мое приложение отображает данные из базы данных, используя функцию индекса, без каких-либо изменений из кода рельсов по умолчанию. На боковой панели я разместил 2 средства выбора даты jQuery, которые я хочу использовать для фильтрации этих данных по дате. Я хочу, чтобы страница обновлялась при выборе даты в средстве выбора даты, а не при нажатии какой-либо кнопки в форме.

Датчики даты отображаются нормально, но я не могу понять, как правильно подключить их к моему приложению rails. Вот код:

<script type="text/javascript">
    $(function() {
        $("#from_filter").datepicker({
            showOn: 'both',
            buttonImage: 'images/calendar.gif',
            buttonImageOnly: true,
            onSelect: function(date,inst) {
                    }
        });

        $("#to_filter").datepicker({
            showOn: 'both',
            buttonImage: 'images/calendar.gif',
            buttonImageOnly: true,
            onSelect: function(date,inst) {
                    }
        });
    });
</script>
<div id="sidebarwindow">
    <div id="sidebarwindowheader">Date Filter</div>
    <table id="hor-zebra">
        <tr>
            <td><label for="from_filter">From:</label></td>
            <td><div id="datepicker"><%= text_field_tag 'from_filter' %></div></td>
        </tr>
        <tr>
            <td><label for="to_filter">To:</label></td>
            <td><div id="datepicker"><%= text_field_tag 'to_filter' %></div></td>
        </tr>
    </table>
</div>

Я немного погуглил, но быстро заблудился, так как большинство примеров jQuery -> Rails, кажется, сосредоточены на использовании форм, а здесь я не хочу. С помощью alert () я проверил, что onSelect () работает правильно, но я не знаю, как вызывать мой контроллер Rails из этой функции.

По сути, я хочу выбрать дату, а затем заново отрендерить детали на странице, которую, как я знаю, нужно обновить. Может быть, я просто не совсем понимаю AJAX / jQuery / Rails?

1 Ответ

1 голос
/ 14 июня 2010

В основном ваша проблема в том, что вы не знаете, что поместить в функцию OnSelect.

Там я бы вызвал функцию ajax jQuery для вызова вашего контроллера, а затем использовал функцию обратного вызова для добавления необходимого HTML-кода.

$.ajax({ url: "/mycontroller/myaction", context: document.body, success: function(){
        $(this).addClass("done");
      }});

Дополнительная информация:

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