移动Safari(10.3.1)date时间 – 本地“input有效值”错误
我在iOS的Mobile Safari的新版本上出现错误。 这个错误在iOS版本10.3之前没有发生。 有人能指出我在这个正确的方向吗?
这里是原始的HTML和附加的检查视图和移动设备(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>