动态添加 HTML5 日期元素 iOS Safari

Posted

技术标签:

【中文标题】动态添加 HTML5 日期元素 iOS Safari【英文标题】:Dynamically adding HTML5 Date Element iOS Safari 【发布时间】:2014-07-30 14:11:29 【问题描述】:

我有以下 javascript 代码,它使用 jQuery 将 html5 日期输入元素附加到现有 div 元素并将值设置为某个日期(日期格式为 yyyy-MM-dd)。此代码在 Chrome、Safari(桌面)、IE(使用 IE 11 测试)中完美运行。但是当代码在 mobile-safari 上运行时,会附加输入元素,但未设置默认日期值。

代码:

$("<input>").attr(
    type: "date",
    value: "2014-07-31",
    id: "someDate"
).appendTo("#someDiv");

有谁知道为什么没有在 Mobile Safari 上设置默认日期?

谢谢!

【问题讨论】:

什么版本的ios iOS版本为7.1.2 【参考方案1】:

也许你应该在设置值之前将元素插入到 dom 中。不确定这是否有效,请尝试并告诉我。

$('<input type="date" id="#someDate">').appendTo("#someDiv").val("2014-07-31");

如果 appendTo 没有链接,你可以试试 $('#someDate').val("2014-07-31");

另外,输入类型是只读的,所以在元素上设置属性可能无法正常工作。

【讨论】:

感谢 B2K ..我尝试在元素附加后提醒它的值。该值是我所期望的,只是看起来没有价值。 你能做一个 document.write 以便在加载 dom 之前插入元素吗? 我找到了解决问题的方法。可能不是最干净的,但它有效。 'code' $("").attr( type: "text", value: "2014-07-31", id: "someDate" ).appendTo("#someDiv"); document.getElementById("someDate").type = "date"; “代码”我真的没有一个好的技术答案,但我的猜测是使用 jquery 将输入类型设置为日期并不像你期望的那样。我正在阅读不允许使用 jquery 更改输入类型的内容,这可能与此问题有些相关。不过感谢您的帮助!

以上是关于动态添加 HTML5 日期元素 iOS Safari的主要内容,如果未能解决你的问题,请参考以下文章

删除类型=日期的 html5 输入元素中存在的默认文本/占位符

使用 JavaScript 包装 HTML5 视频元素会破坏 iOS 中的视频播放器

html5 输入元素“日期” - 如何显示日历元素

将 HTML5 占位符属性添加到 Spring 3.0 表单输入元素

HTML5 1.10 微格式

动态创建 HTML5 视频元素,而不显示在页面中