【问题标题】:popup screen won't show after submitting a form提交表单后不会显示弹出屏幕
【发布时间】:2012-05-14 06:52:38
【问题描述】:

我正在使用 jquery mobile 构建一个网络应用程序。在一个页面上,我有一个小表格来预订房间。我有两个输入框。在这些框中是开始日期时间,在另一个框中是结束日期时间。

现在我要做的是,当我单击输入框时,会出现一个弹出框,您可以在其中插入日期时间。该插件名为mobiscroll

我在我的 JS 中这样打开它。

  $('[data-role=page]').live('pageinit', function(event){
        $("#DATUM_BEGIN").scroller({ preset: 'datetime',theme: 'jqm', mode: 'mixed',display:'modal'});

        $("#DATUM_EINDE").scroller({ preset: 'datetime',theme: 'jqm', mode: 'mixed',display:'modal'});
});

第一次是正确的。但是,例如,如果我忘记输入结束日期并使用提交按钮提交我的表单。它在屏幕上显示错误消息。但是当我想输入一个日期时。弹出框不会显示。

有人知道我可以如何以正确的方式解决这个问题吗?

编辑:解决方案

好的,我找到了解决方案,您只需要禁用 ajax 即可。 您可以使用属性 data-ajax=false 来禁用表单上的 ajax

【问题讨论】:

  • 您需要找到违规代码并发布。如果没有相关代码,我们是不可能知道问题出在哪里的。

标签: javascript jquery jquery-plugins jquery-mobile mobiscroll


【解决方案1】:

你应该使用

$(page).live('pageinit', function(event){
    // Your code
    // 'page' is a selector for the jquery mobile page you want to work on
});

代替:

$(document).ready(function(){});

你可以在这里看到为什么http://jquerymobile.com/demos/1.1.0/docs/api/events.html 我认为可能是这个问题,但即使不是,我也会这样工作,它会避免一些令人头疼的问题。

【讨论】:

  • 抱歉又来了,这个例子应该是什么页面?
  • 你应该使用 on() 或 delegate() (在旧的 jquery 版本中代表)而不是 live() 方法
  • 我假设您正在使用 jquery mobile(因为您的帖子的标签)并且您正在通过 jquery 移动页面 (jquerymobile.com/demos/1.1.0/docs/pages/page-anatomy.html) 构建您的 html。因此,在这种情况下,'page' 是表单所在页面的选择器。假设您的表单由
    ...
    包裹.此页面的有效选择器是 $('#myPage')
  • 不,我正在使用外部页面。不是一个大的 HTML
  • 即便如此,你不是用
    包装你正在显示的每个页面的内容吗?因为这是要走的路,如果你不这样做,jquery mobile 会创建那个 div
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多