1

出於某種原因,當我加載部分,然後單擊文本框以調出datepicker,我必須單擊該文本框,然後單擊文本框中的日期選擇器出現。任何人都可以看到任何錯誤或如何解決它,所以datepicker出現在第一次文本框被點擊?我使用Ruby 1.9.3和3.2.8軌道Jquery-ui datepicker只出現在文本框第二次集中後

users.js.coffeescript

$("form[data-update-target]").live "ajax:success", (evt, data) -> 
    target = $(this).data("update-target") 
    $("#" + target).html data 

$("#update-container").on 'click', '#event_start_at_date', (evt) -> 
    $("#event_start_at_date").datepicker({ dateFormat: "yy-mm-dd" }) 

$("#update-container").on 'click', '#event_end_at_date', (evt) -> 
    $("#event_end_at_date").datepicker({ dateFormat: "yy-mm-dd" }) 

_event部分文本框是爲用戶new.html

<%= form_for(@event) do |f| %> 
    <div class="field"> 
    <%= f.label 'start date' %>* 
    <%= f.text_field :start_at_date, :class => 'start_at_date', :size => 10, :maxlength => 10 %> 
    <%= f.text_field :start_at_time, :size => 5, :maxlength => 5 %> 
</div> 
<div class="field"> 
    <%= f.label 'end_date' %>* 
    <%= f.text_field :end_at_date, :class => 'end_at_date', :size => 10, :maxlength => 10 %> 
    <%= f.text_field :end_at_time, :size => 5, :maxlength => 5 %> 
</div> 
<% end %> 

新的一頁。 ERB

<%= form_tag({:controller => 'users', :action => 'preview'}, :remote => true, :'data-update-target' => 'update-container') do %> 
    <%= radio_button_tag(:page_type, 'event', false, :class => 'submit') %> 
    <%= label_tag(:page_type, "Event") %> 
    <br/> 
<% end %> 
<div id="update-container"> 
</div> 

回答

3

調用

$("#event_start_at_date").datepicker({ dateFormat: "yy-mm-dd" }) 

不打開日期選擇器,它只是將日期選擇器綁定到該元素,這意味着它會對點擊作出反應並打開日期選擇器。

您應該在裝入DOM時將日期選擇器綁定到元素,而不是在點擊處理程序中。

+0

謝謝,所以我應該把它放在document.ready部分?另外我怎麼會有它,所以它點擊日期選擇器然後點擊? –

相關問題