模式对话框Jquery-UI中的Datepicker

Lie*_*cin 2 jquery jquery-ui ruby-on-rails-3

尝试在模态对话框中创建表单.但我希望这个表单包含来自jquery的日期选择器和其他小部件.

目前我正在这样做:

在视图中:

<p><%= link_to "New Event", new_event_path, :remote => true%></p>
Run Code Online (Sandbox Code Playgroud)

在application.js中

jQuery(function($) { 

    $('a[data-remote]').live('ajax:beforeSend', function(e, xhr, settings){
        xhr.setRequestHeader('accept', '*/*;q=0.5, text/html, ' + settings.accepts.html);
      });

    $('a[data-remote]').live('ajax:success', function(event, data, status, xhr){
    $('#modal').html(data);
    $('#modal').dialog({ 
    show: "slide",
    hide: "slide",
    draggable: true,
    modal: true });
    });
    });
Run Code Online (Sandbox Code Playgroud)

如果在我的部分位于页面顶部我放了

<script>$(function (){  
    $('#event_date').datepicker();  
});
</script>
Run Code Online (Sandbox Code Playgroud)

然后当模态对话框出现时,我的日期字段将显示为datepicker,但我最好将此代码放在application.js中,而不是放在视图中.

我是jquery的新手,这也许就是为什么我发现这很难做到的.欢迎任何建议!

Pat*_*cia 8

把datepicker初始化放在open 对话框的回调中!

$('a[data-remote]').live('ajax:beforeSend', function(e, xhr, settings){
    xhr.setRequestHeader('accept', '*/*;q=0.5, text/html, ' + settings.accepts.html);
});

$('a[data-remote]').live('ajax:success', function(event, data, status, xhr){
    $('#modal').html(data);
    $('#modal').dialog({ 
        show: "slide",
        hide: "slide",
        draggable: true,
        modal: true,
        open: function(event, ui){
            $('#event_date').datepicker(); 

        }
    });
});
Run Code Online (Sandbox Code Playgroud)