2012-05-19 21 views
19

Safari na iPadzie ma być zgodne z html5, ale wydaje się, że wymagany element nie działa. Ktoś wie, dlaczego, czy też przyzwoity sposób obejścia, który nie wymaga mnóstwa JavaScript?Element formularza HTML "wymagany" na iPadzie/telefonie iPhone nie działa

Mój kod

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

Czy możesz spróbować '' lub ' ". – Chris

+0

Czy próbowałeś użyć 'required />' zamiast 'required>'? – Hidde

Odpowiedz

24

To nie jest obsługiwane w systemie iOS jeszcze: when can I use: required.

+15

wstyd na jabłko. – Sombriks

+9

Wstyd na Apple x1000! Minęły 3 lata, 6 miesięcy i 4 dni (od tego postu), ponieważ zostało to zadane, a Apple nadal go nie wdrożyło. Arogancja jest niesamowita. Applesoft 2.0 ... – Gup3rSuR4c

+7

Luty 2016th, Apple nadal jest do bani. –

1

Jeśli już używasz jQuery, Modernizr i yepnope, jest to jeden ze sposobów radzenia sobie z tym. Jeśli nie, to doda wiele dodatkowych javascript.

My solution

16

Jest to rozwiązanie jQuery do tej kwestii, to podkreśla pól wejściowych, które nie wywiązały się w pinky kolor też.

$('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

Twoje rozwiązanie jest wspaniałe Dostosowałem go do sprawdzania poprawności tylko obecnego formularza, jeśli masz więcej niż jeden formularz na stronie, modyfikując drugą linię następująco: 'code'var required = $ ('[required =" true "]', this);' code' – phpawy

1

Myślę, że można coś zrobić, zanim złożyć skargę jak ten

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

po naciśnięciu przycisku checkValid()submit jest krót- zanim faktycznie podnosi. wartość zwracana true będzie kontynuować akcję przesyłania.

patrz this post do dalszego wyjaśnienia. :)

1

Od iOS 10.3 to jego cechy są obsługiwane. Również typ e-mail wymaga napisania symbolu @ i tak dalej ...