Safari не признает "обязательный" атрибут. Как это исправить?
<form id="customerForm">
<label>
First Name:
<input id="firstName" required />
</label>
<label>
Social Security Number:
<input id="ssn" required pattern="^d{3}-d{2}-d{4}$"
title="Expected pattern is ###-##-####" />
</label>
<input type="submit" />
</form>
Когда я пытаюсь выполнить этот документ в Chrome, он принимает условия и показывает ошибку, как и ожидалось.
Но когда я пытаюсь выполнить этот документ в Safari, он не обнаруживает ошибки.
Ответы
Ответ 1
В настоящее время Safari не поддерживает "требуемый" входной атрибут.
http://caniuse.com/#search=required
Чтобы использовать атрибут 'required' в Safari, вы можете использовать webshim '
1 - Загрузить webshim
2 - Поместите этот код:
<head>
<script src="js/jquery.js"></script>
<script src="js-webshim/minified/polyfiller.js"></script>
<script>
webshim.activeLang('en');
webshims.polyfill('forms');
webshims.cfg.no$Switch = true;
</script>
</head>
Ответ 2
В настоящее время Safari еще не выдаёт сообщений об ошибках для требуемых значений в поля формы, которые пользователь не предоставил (а также недопустимые значения, введенные пользователем в поля формы). Но вы можете включить его, используя хаки или polyfill. См. HTML5 Validation Fallback (без библиотеки) для облегченного взлома, который позволяет это, и см. h5Validate для плагина polyfill на основе jQuery.
Ответ 3
Необходимый атрибут должен быть доступен в Safari 10.1 и новее.