【问题标题】:Jquery Mobile DateBox plugin only working when linked directly to pageJquery Mobile DateBox 插件仅在直接链接到页面时才有效
【发布时间】:2011-12-04 06:18:07
【问题描述】:

我正在将 DateBox (http://dev.jtsage.com/jQM-DateBox/) 插件用于具有最新版本的 JqueryMobile 的页面,但我发现了一个奇怪的错误。 当我在 index.html 上打开我的应用程序并通过页面导航到带有日期选择器的页面时,我得到了这个 - http://cl.ly/19022K40472e3k0D0D2H

但是,如果我通过地址栏直接进入该页面,它可以正常工作并按应有的方式显示。

所以只是想知道还有其他人对此有问题吗?或者知道如何解决它?

另外我可能会补充,有人知道如何在文本字段中显示当前日期吗?

谢谢。

【问题讨论】:

    标签: jquery-mobile datebox


    【解决方案1】:

    1) 看起来是 datebox 的 css 没有正确加载的问题。你是在 index.html 中加载 datebox 的 CSS 吗?在这种情况下,当你直接使用 datepicker 进入页面时,CSS可能未加载。您可以使用 firebug for firefox 或 Chrome/Safari 中内置的开发人员工具检查是否加载了 datebox css。(检查资源选项卡以查看所有加载的资源)

    2)检查这个例子 - http://jsfiddle.net/BNsPB/。在这个例子中,我在文档中编写了代码,在您的情况下,您可能需要在pageinitpagecreate 事件处理程序中编写代码

    检查您的实际代码后,我认为您必须像这样在 pageshow 事件处理程序中添加上述代码 sn-p:(假设 bookingPage 是页面的 id)

    $("#bookingPage").live( 'pageshow',function(event, ui){
      var today = new Date();
        var todayStr = today.getFullYear()+"-"+(today.getMonth()+1)+"-"+today.getDate();
        $('#mydate').trigger('datebox', {'method':'set', 'value':todayStr});
         });
    });
    

    【讨论】:

    • 是的,就是这样!我取出标题中的代码以稍微清理其他页面,因为我认为如果我不使用它就不需要在那里。谢谢!
    • 我出去了,所以没有尝试显示日期的代码片段,但我只是尝试了一下,它有点工作。它在文本字段中显示日期,但是 1. 它将格式更改为错误的格式 yyyy - mm - dd,在我将其设置为 dd - mm - yyyy 之前,另一件事是当我调出设置的日历时默认到 1918 年。拿走那个脚本,一切都会恢复正常。有什么想法为什么要这样做?
    • 一切都很好,我修复了它:) 只是改变了这条线,它修复了日期格式,并且停止显示 1918 年。 var todayStr = today.getDate()+"-"+(today.getMonth()+1)+"-"+today.getFullYear();
    • 说得太早了.. 很抱歉时间过去了,我无法编辑最后一条评论。这似乎是日期选择器首先出现的问题,链接到页面时没有显示。但是我只在索引页面和预订时间页面上制作了您所做的脚本。这就是标题代码的样子 - jsfiddle.net/JBYmV
    • 你的意思是你还有这个问题?
    【解决方案2】:

    您需要首先将文件加载到您的网站导航到的实际文件中(大概是index.html)。听起来您只在日期选择器页面中引用了 CSS 和插件代码,但在默认模式下,jQM 使用基于 ajax 哈希的导航系统,因此您需要以这样一种方式引用资产,即它们可以从 get -去。

    【讨论】:

    • 谢谢本!现在全部排序:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-31
    • 1970-01-01
    • 1970-01-01
    • 2012-04-22
    相关资源
    最近更新 更多