2017-06-19 74 views
0

我的窗体中有一个jQuery的日期选择器。单击文本字段时出现的唯一方法是在编辑表单时刷新页面。无论何时您点击该字段,我如何才能使其工作?jquery datepicker只在页面重新加载后打开

咖啡脚本:

jQuery -> 
$(document).ready -> 
    $("#datepicker").datepicker({ 
    dateFormat: 'yy-mm-dd' 
}); 

我也尝试从日历代码railscast:

jQuery -> 
    $("#datepicker").datepicker({ 
    dateFormat: 'yy-mm-dd' 
}); 

我的形式:

<%= f.text_field :deadline, id: "datepicker", placeholder: 'Deadline' %> 

的application.js:

//= require jquery 
//= require jquery_ujs 
//= require jquery-ui/widgets/datepicker 
//= require turbolinks 
//= require_tree . 

Application.scss:

/* 
*= require jquery-ui/datepicker 
*= require_tree . 
*= require_self 
*/ 

回答

1

这是一个turbolinks问题,使用turbolinks:负载来代替。

document.addEventListener("turbolinks:load", function() { 
    $("#datepicker").datepicker({ 
     dateFormat: 'yy-mm-dd' 
    }); 
}) 

See turbolinks docs

+0

我得到'''语法错误:[标准输入]:4:46:保留字“function''''在以前的评论 – ddonche

+1

CoffeeScript的问题。我通过执行'''document.addEventListener“turbolinks:load”, - > $(“#datepicker”).datepicker dateFormat:'yy-mm-dd'''' – ddonche