2012-05-19 6 views
19

iPad Safari должен быть совместим с html5, но кажется, что необходимый элемент не работает. Кто-нибудь знает, почему, или имеет достойное обходное решение, которое не требует тонны JavaScript?Элемент формы Html5 «требуется» на iPad/iPhone не работает

Мой код

<input type=email class=input placeholder="Email" name="email" required> 
+0

Можете ли вы попробовать '' или '<тип ввода = email class = input placeholder = "Email" name = "email" required = "" /> '. – Chris

+0

Вы пытались использовать 'required />' вместо 'required>'? – Hidde

ответ

24

Это не поддерживается прошивкой еще: when can I use: required.

+15

стыд на яблоко. – Sombriks

+9

Позор на Apple x1000! Это было 3 года, 6 месяцев и 4 дня (начиная с этого поста), так как это было спрошено, и Apple все еще не реализовала его. Высокомерие невероятно. Applesoft 2.0 ... – Gup3rSuR4c

+7

Февраль 2016-го, Apple все еще сосет. –

1

Если вы уже используете jQuery, Modernizr и yepnope, это один из способов борьбы с ним. Если вы этого не сделаете, это добавит много дополнительного javascript.

My solution

16

Это решение 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. 
    } 
}); 
+0

. Ваше решение отличное. Я настроил его, чтобы проверить только текущую форму, если у вас есть более одной формы на странице, изменив вторую строку следующим образом: 'code'var required = $ ('[required =" true "]', this);' code' – phpawy

1

Я думаю, вы можете сделать что-то прежде, чем представить действие, как этот

<form name="myForm" action="valid.html" onsubmit="checkValid()" method="post"> 
    ... ... 
</form> 

после нажатия кнопки submit, checkValid() вызывается прежде, чем он на самом деле представляет. возвращаемое значение true продолжит действие отправки.

this post см для дальнейшего объяснения. :)

1

С прошивкой 10.3 это atrributes поддерживаются. Кроме того, тип электронной почты требует записи символа @ и т. Д.