动态添加 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 中的视频播放器