Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
HTML5日期选择器不';我不能在狩猎中露面_Html_Safari - Fatal编程技术网

HTML5日期选择器不';我不能在狩猎中露面

HTML5日期选择器不';我不能在狩猎中露面,html,safari,Html,Safari,以前使用过jQuery日期选择器,现在我将网站上表单中的一些日期字段转换为HTML5日期选择器 在文档中,它说Safari是受支持的:但是,它目前只显示一个文本字段(而Chrome和其他浏览器则正确显示日期选择器) echo”“; (在不使用“最小”属性的情况下应用相同的设置) 这是我的代码行-是我做错了什么,还是我只是看错了文档,Safari不支持它 谢谢大家! Safari的桌面版本不包含本机日期选择器(尽管它在iOS中包含)。顺便说一句,IE也没有。这非常令人沮丧,因为如果他们这样做了,

以前使用过jQuery日期选择器,现在我将网站上表单中的一些日期字段转换为HTML5日期选择器

在文档中,它说Safari是受支持的:但是,它目前只显示一个文本字段(而Chrome和其他浏览器则正确显示日期选择器)

echo”“;
(在不使用“最小”属性的情况下应用相同的设置)

这是我的代码行-是我做错了什么,还是我只是看错了文档,Safari不支持它


谢谢大家!

Safari的桌面版本不包含本机日期选择器(尽管它在iOS中包含)。顺便说一句,IE也没有。这非常令人沮丧,因为如果他们这样做了,可以节省开发人员很多时间

这是跟踪it支持的有用链接:

摘自

使用jQuery和jQuery UI,您可以创建一个交叉浏览器日期选择器,该选择器仅在浏览器本机不支持时弹出。如果您的项目中已经有jQuery,只需执行以下操作:

var dateClass='.datechk';
$(文档).ready(函数()
{
if(document.querySelector(dateClass).type!=='date')
{
var oCSS=document.createElement('link');
oCSS.type='text/css';oCSS.rel='stylesheet';
href='/ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/base/jqueryui.css';
oCSS.onload=函数()
{
var oJS=document.createElement('script');
oJS.type='text/javascript';
oJS.src='/ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jqueryui.min.js';
oJS.onload=函数()
{
$(dateClass.datepicker();
}
文件.正文.附件(oJS);
}
文件.正文.附件(oCSS);
}
});

尽管Safari(或IE)没有本机日期选择器,但一个很好的解决办法是在日期输入中添加一个
占位符。这将通知Safari和IE用户回退文本输入的格式(即
yyyy-mm-dd

占位符不会显示在支持
type=“date”
的浏览器上,因此此解决方案不会影响其他浏览器

e、 g。

您可以使用正则表达式模式验证占位符中的格式,如上面的示例所示。这里的一个是一个很好的起点,但您可能希望创建自己的

在Safari中尝试下面的代码,但不要添加有效的格式化值,如文本字符串

不正确的格式显示验证错误,正确的格式(dd/mm/yyyy或dd-mm-yyyy)将提交表单,表单将消失


检查值是否有效

对于那些使用WordPress的用户,有一个使用此插件的快速修复方法


您只需在插件设置中传递CSS选择器,或者只需传递
输入[type=date]
2021/04/29更新:支持已添加到Safari 14.1\o/



旧答案:

Safari 15(截至2021年2月22日尚未发布)将提供本地日期选择器:

“从2020年10月22日发布的Safari TP[TP=Technology Preview]115开始,macOS和iOS上支持日期、本地日期和时间的UI。macOS上不支持月输入类型,但iOS上可以使用。macOS和iOS上不支持周输入类型。”

截图:


也许日期选择器不是问题的直接原因?你有没有检查过Safari控制台是否有错误?@sidneylibrand good call-我检查过控制台,发现有一个错误(由jQuery选择器给出)。我删除了引用,错误信息消失了,但是日期选择器仍然不能工作。有人知道Big Sur update是否支持它吗。Safari将获得webP支持,因此现在如果它获得日期选择器支持,那么它可能不再被视为下一个IE:)根据该页面,Safari似乎不完全支持它,因此可能是这样。谢谢你的链接-这是一个有用的资源,我已经把它作为书签以备将来参考!据我所知,唯一的解决办法是在输入标签上提供一个
占位符=“yyyy-mm-dd”
属性,safari/IE应该使用该属性,但其他支持html5日期选择器的浏览器将忽略该属性,而改为使用操作系统推荐的格式(例如,对于美国用户,将使用“mm/dd/yyyy”)。您选择的占位符格式应与您在服务器端处理字段数据的方式一致。四年后,仍然不支持输入[type=date]。浏览器真是个笑话。Safari实际上是“新”的,即5年后制作。正在报告下一版本的Safari将部分支持日期类型输入。花了他们足够长的时间。这看起来是一个很好的解决方案,但似乎不起作用。我将上述内容放在脚本标记之间,并在表单中将“your date”更改为我的日期输入字段的id(和名称),但这在safari上没有任何区别——仍然只是一个空白文本框。控制台上的任何输出都不适合我!如果他们使用丑陋的jQueryUI小部件,我根本不会设计它!我建议不要使用CDN,但这是另一回事。阅读此内容了解有关正则表达式的信息。问题是关于数据输入的Safari@MichaelDoye是的,Finlay Percy示例的下一步是使用pattern属性中的regex向输入添加HTML验证,以确保用户正确格式化输入。例如,在Chrome上,您将获得本机日期选择器,但Safari将退回到带有占位符文本的文本输入。pattern属性将检查值的格式是否正确。我添加了一个按钮来检查值是否有效。如果没有,您会收到一个错误,如果没有问题,表单将提交并消失。在iOS Safari页面上尝试此操作后,似乎没有给出正确的结果,日期仍然以“错误”的顺序显示
echo "<input type='date' name='Date' min='$todaymin'>";