Safari не признает "обязательный" атрибут. Как это исправить? - программирование
Подтвердить что ты не робот

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, он не обнаруживает ошибки.

4b9b3361

Ответ 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.