Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何修复损坏的JQueryUI日期选择器_Javascript_Ruby On Rails 3_Jquery Ui - Fatal编程技术网

Javascript 如何修复损坏的JQueryUI日期选择器

Javascript 如何修复损坏的JQueryUI日期选择器,javascript,ruby-on-rails-3,jquery-ui,Javascript,Ruby On Rails 3,Jquery Ui,我有一个JQueryUI日期选择器,定义如下: $(function() { $(".visit_date").datepicker({ changeMonth: true, changeYear: true, showButtonPanel: true, dateFormat: "yy-mm-dd" }); }); 生成日期选择器文本框的视图代码为 <td><%= f.label :visit_date %></td>

我有一个JQueryUI日期选择器,定义如下:

$(function() {
  $(".visit_date").datepicker({
    changeMonth: true,
    changeYear: true,
    showButtonPanel: true,
    dateFormat: "yy-mm-dd"
  });
});
生成日期选择器文本框的视图代码为

<td><%= f.label :visit_date %></td>
<td><%= text_field_tag :visit_date, @visit.visit_date, :class => 'visit_date'
}))

用户按下按钮的原始位置:

<%= link_to "Add Visit", new_client_visit_path(@client), :remote => true, :class => "btn btn-primary btn-large" %>
在views/visions/new.js.erb中:

$('#action_window').html('<%= escape_javascript render(:partial => "new") %>');
$('#action_window').show;
$(“#操作窗口”).html(““新建”)%>”;
$(“#操作窗口”).show;
(#action_窗口是客户端索引视图中的一个div)

在views/visions/_new.html.erb中:

<%= render "form" %>
<%= link_to "Cancel", @client, :class => "btn btn-primary btn-large" %>
%= form_for [@client, @visit] do |f| %>
<td><%= text_field_tag :visit_date, @visit.visit_date, :class => 'visit_date' %>

“btn btn主btn大”%>
在views/visions/_form.html.erb中:

<%= render "form" %>
<%= link_to "Cancel", @client, :class => "btn btn-primary btn-large" %>
%= form_for [@client, @visit] do |f| %>
<td><%= text_field_tag :visit_date, @visit.visit_date, :class => 'visit_date' %>
%=为[@client,@visit]do | f |%>
'访问日期'%>

我无法让Datepicker正常工作,大概是因为创建“New Visit”视图的HTML被呈现了,不知何故,如果没有添加到类中的“hasDatepicker”,JQueryUI无法将其关联起来。

我认为您关于类选择器的假设是正确的。根据我的经验,datepicker应该连接到您选择的任何类/id,而不管它包含在哪个div中。我会检查这些东西:

  • 确保没有错误地使用两个jQuery标记。我这样做了,日期选择器就不起作用了

  • 在此代码之前是否有任何javascript代码正在中断?我认为只要遇到第一个错误,JS执行就会停止。我将在Chrome中打开页面,右键单击以检查元素,并查看控制台以查看是否存在任何JS错误


  • 这些建议基于这样的假设:rails代码正在生成class=“visit_date”的输入标记。

    我认为您关于类选择器的假设是正确的。根据我的经验,datepicker应该连接到您选择的任何类/id,而不管它包含在哪个div中。我会检查这些东西:

  • 确保没有错误地使用两个jQuery标记。我这样做了,日期选择器就不起作用了

  • 在此代码之前是否有任何javascript代码正在中断?我认为只要遇到第一个错误,JS执行就会停止。我将在Chrome中打开页面,右键单击以检查元素,并查看控制台以查看是否存在任何JS错误


  • 这些建议基于这样一种假设,即rails代码在动态添加要成为日期选择器的元素时,会生成带有class=“visit_date”的输入标记。

    ,并且原始静态页面包含以下jquery以使某些元素成为日期选择器:

    $('.visit_date').datepicker()

    添加新元素get时,它具有class='visit_date',除非调用jquery的数据选择器,否则它不会是日期选择器

    因此,如果您使用new.js.erb添加动态日期选择器元素,可以执行以下操作:

    $('#action_window').html('<%= escape_javascript render(:partial => "new") %>');
    $('.visit_date').datepicker();
    
    $(“#操作窗口”).html(““新建”)%>”;
    $('.visit_date').datepicker();
    
    当您动态添加要成为日期选择器的元素时,原始静态页面包含以下jquery以使某些元素成为日期选择器:

    $('.visit_date').datepicker()

    添加新元素get时,它具有class='visit_date',除非调用jquery的数据选择器,否则它不会是日期选择器

    因此,如果您使用new.js.erb添加动态日期选择器元素,可以执行以下操作:

    $('#action_window').html('<%= escape_javascript render(:partial => "new") %>');
    $('.visit_date').datepicker();
    
    $(“#操作窗口”).html(““新建”)%>”;
    $('.visit_date').datepicker();
    
    那段代码对我有效,你有javascript错误吗?那段代码对我有效,你有javascript错误吗?嗯,这很有趣,@rizalp1和Cyle Hunter。谢谢你的评论。rails代码肯定正在生成带有类“visit_date”的输入标记的代码。而且没有Javascript错误。但不知何故——我查看了一些旧线程——jqueryui不知何故导致类名为“visit\u date hasDatepicker”。因此,如果我呈现HTML(Rails代码)而不使用它,不知何故,JQueryUI不知道它是一个日期选择器。我还没有找到解决方案。也许这只是一个我不知道的jquery语法,但是datepicker调用不应该在$(document).ready(function(){})中吗?或者你有一个简写符号表示相同的东西吗?还有,你的东西是通过AJAX调用动态创建的吗?嘿@RadBrad,是的,这些东西是动态创建的(呈现的)不知怎的,在使用datepicker时,类变成了“visit_date hasDatepicker”,我无法同步Javascript函数和动态生成的HTML。(在另一个线程中,您的配方导致了动态HTML生成)当你从一个AJAX调用中返回HTML,该调用引入了一个新元素,该元素应该是一个数据采集器,在javascript上添加一个元素,将该元素设置为一个日期采集器。如果你想进一步解释,请告诉我,我会发布一个答案。这非常有趣,@rizalp1和Cyle Hunter。谢谢你的评论。rails代码就是这样定义的ely使用类“visit_date”的输入标记生成代码。没有Javascript错误。但不知何故-我查看了一些旧线程-JQuery UI不知何故导致类名为“visit_date hasDatepicker”。因此如果我呈现HTML(Rails代码)没有它,不知何故,JQueryUI不知道它是一个日期选择器。我还没有找到解决方案。也许它只是一个我不知道的jquery语法,但是日期选择器调用不应该在$(document.ready(function(){})中吗?或者,您对同一事物有一个速记符号吗?另外,您的任何东西都是通过AJAX调用动态创建的吗?嘿@RadBrad,是的,这些东西是由AJAX动态创建(呈现)的。不知何故,在使用datepicker时,类变成了“visit\u date hasDatepicker”我无法同步Javascript函数和动态生成的HTML。(在另一个线程中,您的配方导致了动态HTML生成)当你从一个AJAX调用返回HTML,该调用引入了一个新元素,该新元素应该是一个数据选取器时,在javascript上加上一个标记,该标记将该元素设置为一个日期选取器。如果你想进一步解释,请告诉我,我将作为答案发布。谢谢,@RadBrad.极好。谢谢,@Rad