web-dev-qa-db-fra.com

Safari ne reconnaît pas l'attribut "requis". Comment le réparer?

<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>

Lorsque j'essaie ce document dans Chrome, il accepte les conditions et affiche l'erreur, comme prévu.

Mais lorsque j'essaie ce document dans Safari, il ne montre aucune erreur.

15
Amir Bennasr

Pour le moment, Safari ne prend pas en charge l'attribut d'entrée "requis". http://caniuse.com/#search=required

Pour utiliser l'attribut 'required' sur Safari, vous pouvez utiliser ' webshim '

1 - Télécharger webshim

2 - Mettez ce code:

<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>
25
Jérémie Chazelle

Actuellement, Safari n'émet pas encore de messages d'erreur pour les valeurs requises dans les champs de formulaire que l'utilisateur n'a pas fournis (ni pour les valeurs non valides que l'utilisateur a mises dans les champs de formulaire). Mais vous pouvez l'activer en utilisant des hacks ou un polyfill. Voir Fallback de validation de formulaire HTML5 (sans bibliothèque) pour un hack léger qui le permet, et voir h5Validate pour un plugin polyfill basé sur jQuery.

7
sideshowbarker

L'attribut requis doit être disponible dans Safari 10.1 et plus récent .

0
bfulgham