W mojej aplikacji internetowej używam niestandardowej weryfikacji dla moich pól formularza. W tym samym formularzu mam dwa przyciski: jeden do faktycznego wysłania formularza, a drugi do anulowania / resetowania formularza.
Przeważnie używam Safari jako domyślnej przeglądarki. Teraz Safari 5 jest wyłączone i nagle mój przycisk anulowania / resetowania przestał działać. Za każdym razem, gdy naciskałem przycisk resetowania, pierwsze pole w moim formularzu było aktywne. Jest to jednak to samo zachowanie, co w przypadku walidacji mojego formularza niestandardowego. Podczas próby z inną przeglądarką wszystko działało dobrze. Musiałem mieć problem z Safari 5.
Zmieniłem nieco kod JavaScript i okazało się, że problem powoduje następujący wiersz:
document.getElementById("somefield").required = true;
Aby mieć pewność, że to naprawdę będzie problem, stworzyłem scenariusz testowy:
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
</head>
<body>
<form id="someform">
<label>Name:</label> <input type="text" id="name" required="true" /><br/>
<label>Car:</label> <input type="text" id="car" required="true" /><br/>
<br/>
<input type="submit" id="btnsubmit" value="Submit!" />
</form>
</body>
</html>
Stało się to, czego się spodziewałem. Pierwsze pole „name” zostało automatycznie wyróżnione.
Ktoś jeszcze się w to natknął?