Атрибут Обязательный не работает в Safari.
Чтобы исправить это, я использую Webshim. Все работало отлично, пока я не заметил, что когда я использую onsubmit в теге формы, он срабатывает при отправке, независимо от того, что некоторые обязательные входные данные пусты. Вы видите «Пожалуйста, заполните это поле» на входе, но функции onsubmit все равно срабатывают.
<form onsubmit="alert('hi')" action="#">
<input placeholder="native input works" required>
<input type="submit">
</form>
Вот как я инициализирую Webshim:
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/webshim/1.16.0/dev/polyfiller.js"></script>
<script>
webshim.activeLang('en');
webshims.polyfill('forms');
webshims.cfg.no$Switch = true;
</script>
Вот вам рабочий пример. Вы можете попробовать это в Safari и в Chrome, и вы увидите, что оповещение срабатывает в Safari, а не в Chrome.
https://jsfiddle.net/3pxsvxxj/
Пожалуйста, мне нужно решить это, и я не могу найти способ.
Ваше здоровье.