Элемент формы Html5, «обязательный» на iPad/iPhone, не работает
-
11-12-2019 - |
Вопрос
Предполагается, что iPad Safari совместим с HTML5, но кажется, что необходимый элемент не работает.Кто-нибудь знает, почему, или у вас есть достойное обходное решение, не требующее тонны JavaScript?
Мой код
<input type=email class=input placeholder="Email" name="email" required>
Решение
Это еще не поддерживается в iOS: Когда я могу использовать: обязательно .
Другие советы
Это решение jQuery к проблеме, оно подчеркивает поля ввода, которые тоже не удалось в розовом цвете.
$('form').submit(function(){
var required = $('[required="true"]'); // change to [required] if not using true option as part of the attribute as it is not really needed.
var error = false;
for(var i = 0; i <= (required.length - 1);i++)
{
if(required[i].value == '') // tests that each required value does not equal blank, you could put in more stringent checks here if you wish.
{
required[i].style.backgroundColor = 'rgb(255,155,155)';
error = true; // if any inputs fail validation then the error variable will be set to true;
}
}
if(error) // if error is true;
{
return false; // stop the form from being submitted.
}
});
. Поскольку iOS 10.3 Этот атрибуты поддерживаются.Также тип электронной почты требует записи символа @ и так далее ...
Если вы уже используете jQuery, Modernizr и yepnope, это один из способов справиться с этим.Если вы не тогда, это добавит много дополнительного JavaScript.
Я думаю, вы можете что-то сделать перед отправкой, вот так
<form name="myForm" action="valid.html" onsubmit="checkValid()" method="post">
... ...
</form>
после нажатия submit
кнопка, checkValid()
вызывается до того, как оно фактически подчинится.возвращаемое значение true
продолжит действие отправки.
Ссылаться на эта почта для дальнейшего объяснения. :)
Если вы используете PHP, вы можете добавить подобную проверку
function validation(){
if(isset($_POST['submit'])){
$email = $_POST['email'];
if(empty($email)){
echo $error = "Your email cannot be empty";
} else {
return true; //or do something next here
}
}
.
Затем вы добавляете эту функцию в PHP перед формой.