2012-01-06 47 views
1

我嘗試在我的應用程序中使用datepicker函數,這與Rails 3.1一起運行。我得到它的工作,如果我用我的application.js文件中的以下內容:JQuery Datepicker與嵌套的資源軌道3.1

$(function(){ 
    $("#exam_deadline").datepicker(); 
}); 

現在我有一個嵌套的資源,並嘗試了很多事情來得到這個工作,它爲好,但didn't有任何成功。隨着一些研究,我發現,一個可能的解決辦法是這樣的:

$(function(){ 
    $('.datePicker').datePicker(); 
    }); 

但是,如果我的類添加到我的領域,它甚至doesn't爲exam_deadline工作了。我對Javascript並不是很熟悉,我希望有人能告訴我,我做錯了什麼。 這是從我的觀點和.js文件的片段: JS:

function remove_fields (link) { 
    $(link).prev("input[type=hidden]").val("1"); 
    $(link).closest(".fields").hide();  
} 

function add_fields(link, association, content) { 
    var new_id = new Date().getTime(); 
    var regexp = new RegExp("new_" + association, "g"); 
    $(link).parent().before(content.replace(regexp, new_id)); 
} 

觀點: 考試:

<%= semantic_form_for @exam do |f| %> 
<%= f.inputs do%> 
<%= f.input :deadline, :as => :string, 
     :start_year => Time.now.year, :label => "Anmeldefrist", 
     :order =>[:day,:month,:year], :class => 'datePicker'%> 
<% end %> 
<%= f.semantic_fields_for :examdates do |builder|%> 
    <%= render "examdate_fields", :f => builder %> 
<% end %> 
<p> 
    <%= link_to_add_fields "Termin hinzufügen", f, :examdates %> 
</p> 

<%end%> 

examdate_fields:

<%= f.inputs :class => 'fields' do%> 
<%= f.input :date, :label =>"Termin", 
    :as => :string, 
    :order =>[:day,:month,:year], :start_year => Time.now.year, 
    :class=>"datePicker" %> 
<%= link_to_remove_fields "Entfernen", f %> 
<%end%> 

我application.html.erb:

<!DOCTYPE html> 
<html> 
    <head> 
    <title><%= content_for?(:title) ? yield(:title) : "Untitled" %></title> 
    <%= stylesheet_link_tag "http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/redmond/jquery-ui.css", 
    "application", "formtastic.css", "formtastic_changes.css" %> 
    <%= javascript_include_tag "http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js", 
    "http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.1/jquery-ui.min.js", "application" %> 
    <%= csrf_meta_tag %> 
    <%= yield(:head) %> 
    </head> 
... 

在此先感謝您的每一個小技巧!

回答

0

好吧,經過很多嘗試我得到它。我改變了JS來:

$(function(){ 
    $(".datePicker").datepicker(); 
    $('#ui-datepicker-div').hide(); 
    $.datepicker._defaults.dateFormat = 'dd M yy' 
}); 

和我的觀點:

<%= f.input :date, 
    :label =>"Termin", 
    :as => :string, 
    :order =>[:day,:month,:year], 
    :start_year => Time.now.year, 
    :input_html => {:class =>"datePicker" }%> 

現在工程:)我希望它可以幫助別人誰同樣的問題掙扎。

0

只是一個快速的猜測。您使用單名引用您的單引號。

如果這不能解決問題,我會嘗試堅持使用Ids而不是類名(我不知道datepicker是否仍然可以使用類選擇器正確引用它們)。您只需要爲每個輸入和動態創建的javascript(每個動態創建的輸入的日期選擇器),而不是一個靜態js文件需要另一個Id。

+0

感謝您的快速回答。單引號不是問題。你能告訴我,如果我使用一個Id,函數的外觀如何?在輸入字段中,我只需要替換:帶有Id的類,還是必須將其放在其他位置?這也可能與事實有關,我已經在輸入標籤中有類「字段」了嗎? – 2012-01-06 11:16:48