2013-03-31 2 views
3

Я хочу добавить виджет datepicker в одно из моих полей. В настоящее время я использую рельсы 3.2.13 с рубином 1.9.3.p325. Я также включил драгоценный камень «jquery_datepicker», а также «jquery-rails» и «jquery-ui-rails»rails jquery ui datepicker

Код формы выглядит следующим образом.

<div class="field"> 
    <%= f.label :datum %><br /> 
    <%= f.text_field :datum , :id => "datepicker" %> 
    </div> 

Прилагаемый Javascript является:

//= require jquery 
//= require jquery_ujs 
//= require bootstrap 
//= require dataTables/jquery.dataTables 
//= require select2 
//= require_tree . 


$ -> 
    $("#practice_toolkeeper") 
    .select2({ 
     allowClear: true, 
     placeholder: 'Select an item' 
    }) 
    .select2('val',$("#toolkeeper_value").val())  

$ -> 
    $("#datepicker").datepicker() 

, которые генерируют HTML

<div class="field"> 
    <label for="practice_datum">Datum</label><br /> 
    <input id="datepicker" name="practice[datum]" size="30" type="text" /> 
</div> 

если вы выберите поле ввода, ничего не происходит

+0

извините, но что такое '$ ->' в коде ?? Или это просто для этого вопроса? – SachinGutte

+0

Я очень новичок в jquery и coffescript и т. Д. Я этого не знаю. – HappyHacking

+0

см. Мой обновленный ответ. – SachinGutte

ответ

6

Заменить

$("datepicker").datepicker(); 

с

$("#datepicker").datepicker(); 

Missing # в selecotr. Поскольку datepicker является id элемента. Вы должны использовать # в селекторе.

UPDATE

jQuery($)-> 
$("#datepicker").datepicker(); 
..... 

Это должно работать.

Update 2

Предположим, вы следующее содержание в sample.coffee файле -

jQuery -> 
$("#datepicker").datepicker(); 

Вы должны скомпилировать abouve файл с помощью следующей команды -

coffee -c sample.coffee 

Это будет генерировать js файл со следующим содержанием -

(function() { 
    jQuery(function() { 
    return $("#datepicker").datepicker(); 
    }); 

}).call(this); 

Если вы не знакомы хорошо с кофе сценарий, пойти, хотя http://coffeescript.org/#installation

+0

ok Я изменил это, но это не повлияло на мое редактирование выше – HappyHacking

+0

не работает, но теперь в firebug я получаю следующую ошибку: ТипError: jQuery (...) datepicker не является функцией [Break По этой ошибке] \t return jQuery ("# ​​datepicker"). Datepicker(); – HappyHacking

+0

уточните пожалуйста. – SachinGutte

2

Вы пропустили #, чтобы выбрать элемент с идентификатором DatePicker. Это должно быть

$("#datepicker").datepicker()