移动Safari(10.3.1)date时间 – 本地“input有效值”错误

我在iOS的Mobile Safari的新版本上出现错误。 这个错误在iOS版本10.3之前没有发生。 有人能指出我在这个正确的方向吗?

这里是原始的HTML和附加的检查视图和移动设备(iPhone 7)的视图。

督察视图 iPhone 7视图

简单解决scheme

IOS需要在“datetime-local”types的input字段上设置一个值。

例如: <input type="datetime-local" value="2000-07-01T12:00" />

而已 :)

我个人觉得把用户当前的本地时间设置为默认值是很不错的。 这不得不在没有秒的ISOTime格式,所以这个代码可能是这样的:

 // get the iso time string formatted for usage in an input['type="datetime-local"'] var tzoffset = (new Date()).getTimezoneOffset() * 60000; //offset in milliseconds var localISOTime = (new Date(Date.now() - tzoffset)).toISOString().slice(0,-1); var localISOTimeWithoutSeconds = localISOTime.slice(0,16); // select the "datetime-local" input to set the default value on var dtlInput = document.querySelector('input[type="datetime-local"]'); // set it and forget it ;) dtlInput.value = localISOTime.slice(0,16); 

看来这是一个在Safari中的错误,但你可以跳过它使用JavaScript来提交表单。

 $("#new_apply_form").submit(); 

这是Safari中的一个错误。 你应该使用JS来提交表单。

JS: form.submit();

此消息由客户端validation触发。 如果你没有使用客户端validation,那么我发现你可以通过使用novalidate属性closures它来解决这个问题,如下所示:

 <form action="/myaction" method="POST" novalidate>