具有nested_forms宝石的jQuery UI DatePicker [英] jQuery UI DatePicker with nested_forms Gem

查看:84
本文介绍了具有nested_forms宝石的jQuery UI DatePicker的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我查看了,但是没有解决我的问题,但情况相同. jQuery加载就好了.

I've looked at this but this didn't solve my issue but it's the same circumstance. jQuery is loaded just fine.

这是我的嵌套表格":

<%= f.fields_for :events do |event_form| %>
<%= event_form.text_field :name %>
<%= event_form.text_field :date, :class => 'event_date' %>
<%= event_form.text_field :email %>
<%= event_form.text_field :place %>
<%= event_form.link_to_remove "Remove Event", :class => "remove_task" %>
<% end %>

这是JS:

jQuery(document).ready(function($) {
  $('.event_date').each(function() {
    $(this).datepicker();
  });   
});

最后这是生成的html.您可以看到jQuery UI为DatePicker添加了它的类(hasDatepicker):

Lastly here's the html that's generated. You can see the jQuery UI adds it's class (hasDatepicker) for DatePicker:

<input class="event_date hasDatepicker" id="group_events_attributes_new_1317162040750_date" name="group[events_attributes][new_1317162040750][date]" size="30" type="text" style="border-top-left-radius: 5px 5px; border-top-right-radius: 5px 5px; border-bottom-left-radius: 5px 5px; border-bottom-right-radius: 5px 5px; ">

任何帮助将不胜感激.谢谢!

Any help would be greatly appreciated. Thanks!

推荐答案

我现在正以某种形式做同样的事情.这是我的jQuery 1.7示例.

I'm doing the same thing in a form right now. Here's my example with jQuery 1.7.

(function ($) {
    var app = {}, opts = { dateFormat: 'yy-mm-dd' }, dateSelector = 'input.event_date:visible';
    app.init = function(){
        $(window).on('nested:fieldAdded', onFieldAdded);
        $(dateSelector).datepicker(opts);
    };
    function onFieldAdded(e) {
        e.field.find(dateSelector).datepicker(opts);
    }
    $(app.init);
    return app;
} (jQuery));

对于旧版jQuery,您可以在init函数中使用以下内容.

For older versions of jQuery, you would use the following in the init function.

$(window).bind('nested:fieldAdded', onFieldAdded);

关于我正在做的事情,更好的是减少了重复(选择符的字符串),并且我不对隐藏元素调用datepicker,因此无需对通过nested_forms添加的元素调用'removeClass('hasDatepicker').

What's nicer about what I'm doing, is less repetition (strings for selectors) and I don't call datepicker on hidden elements, so there's no need to call 'removeClass('hasDatepicker') on elements added through nested_forms.

这篇关于具有nested_forms宝石的jQuery UI DatePicker的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆