【发布时间】:2011-02-15 15:23:57
【问题描述】:
好的,我正在使用jQuery Mobile Framework 并添加Experimental Date Picker,但我遇到了两个结果。按照页面上的说明,这就是我目前所拥有的。
代码工作 #1:
$(document).ready(function() {
$('.hasDatepicker').hide();
$('#date-of-birth').each(function() {
$(this).focus(function() {
$(this).next().show('fast');
});
$(this).blur(function() {
$(this).next().hide('fast');
});
});
});
现在这显示了一个日历(如我所愿),但在选择日期时,日期保持不变(今天的日期)而不是选择的日期。
代码工作 #2:
$(function() {
$('.hasDatepicker').hide();
$('#date-of-birth').focus(function() {
$('.hasDatepicker').show('fast');
});
$('#date-of-birth').blur(function() {
$('.hasDatepicker').hide('fast');
});
});
现在这显示了多个日历(确切地说是 5 个)堆叠在一起,并且如果我选择它按预期工作的日期。但我只想显示一个日历。
我想将这两种代码工作结合起来以获得所需的结果,但似乎没有任何效果。
这里是 HTML
<div data-role="fieldcontain">
<label for="date-of-birth">Date of Birth</label>
<input type="date" name="date-of-birth" id="date-of-birth" />
</div>
type="date" 是您调用日期选择器的方式
有什么建议吗?
其他可能会有所启发的堆栈链接
更新:
这可能是问题,但仍未找到解决方案。
我使用 jQueryMobile 的 Multi-page layout 选项,对于每个页面,它都会创建一个额外的日期选择器,但它会显示它们彼此堆叠并且功能无法正常工作
【问题讨论】:
-
$('#date-of-birth').each()的意义何在? ID 应该是唯一的。您是否将所有 5 个日历链接到具有相同 ID 的字段?当您有重复的 ID 时,不能期望 $('#something') 返回多个元素。此外 - 如果您复制 ID,所有表单增强功能都无法正常工作。我已经在 SO 上看到过一次。 -
日历重复的行为很奇怪,我只有一个用于日期选择器的字段。如果我只是将代码放在一个函数中,我仍然会得到 dups,如果我使用 each() 我会得到一个?
-
看来我们并不了解对方。 1 当您删除所有 javascript 时,有多少个日期选择器? 2 检查萤火虫,看看您是否确实有多个输入具有该 ID
$('input').each(function(){console.log($(this).attr('id'))}) -
我在页面上有一个具有该 ID 的元素和一个日期选择器,示例 HTMl 是唯一一种在移动框架中调用日期选择器的 type="date"。如果我删除 javascript,我会得到五个相互堆叠的日历,但日期选择功能有效。如果我添加 javascript,我会得到一个日历,但日期选择功能不起作用
标签: jquery mobile datepicker jquery-mobile jquery-ui-datepicker