Я хочу пропустить проверку на входе/форме URL-адреса в Safari. В частности, в Mobile Safari.
Из того, что я могу найти о атрибуте novalidate, он не поддерживается в Safari.
Зная это, как я могу пропустить проверку этого URL-адреса и/или всей формы? (Я мог бы переключить его на текстовый ввод, но я хочу, чтобы клавиатура url открывала вам iOS)
Вы можете легко отключить URL-адрес, используя кусок javascript, как показано ниже:
<script type="text/javascript">
function changeInputType()
{
if (isBrowserSafari())
{
var urlTextBox = document.getElementById("urlInput");
urlTextBox.type = "text";
}
}
function isBrowserSafari() {
var ua = navigator.userAgent.toLowerCase();
if (ua.indexOf('safari') != -1)
{
return ua.indexOf('chrome') <= -1;
}
return false;
}
</script>
Не стесняйтесь подключать функцию к любой точке, которая имеет смысл для вашей программы. Например, onload.
<body onload="changeInputType()">
<form action="#">
Url: <input type="url" id="urlInput" />
<input type="submit" value="Submit" />
</form>
<script type="text/javascript">
function changeInputType()
{
if (isBrowserSafari())
{
var urlTextBox = document.getElementById("urlInput");
urlTextBox.type = "text";
}
}
function isBrowserSafari() {
var ua = navigator.userAgent.toLowerCase();
if (ua.indexOf('safari') != -1)
{
return ua.indexOf('chrome') <= -1;
}
return false;
}
</script>
</body>
</html>
Надеюсь, это поможет.