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部分?另外我怎么会有它,所以它点击日期选择器然后点击? –

相关问题