Trong ứng dụng web của mình, tôi đang sử dụng một số xác thực tùy chỉnh cho các trường biểu mẫu của mình. Trong cùng một biểu mẫu, tôi có hai nút: một để thực sự gửi biểu mẫu và nút kia để hủy / đặt lại biểu mẫu.
Phần lớn tôi sử dụng Safari làm trình duyệt mặc định của mình. Bây giờ Safari 5 đã ra ngoài và đột nhiên nút hủy / đặt lại của tôi không hoạt động nữa. Mỗi khi tôi nhấn nút đặt lại, trường đầu tiên trong biểu mẫu của tôi sẽ được lấy tiêu điểm. Tuy nhiên, đây là hành vi giống như xác thực biểu mẫu tùy chỉnh của tôi. Khi thử nó với một trình duyệt khác, mọi thứ vẫn hoạt động tốt. Tôi đã phải là một vấn đề Safari 5.
Tôi đã thay đổi một chút mã Javascript của mình và tôi phát hiện ra rằng dòng sau đây đang gây ra sự cố:
document.getElementById("somefield").required = true;
Để chắc chắn đó thực sự là vấn đề, tôi đã tạo một kịch bản thử nghiệm:
<!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>
Điều tôi mong đợi sẽ xảy ra đã xảy ra. Trường đầu tiên "tên" đã tự động lấy tiêu điểm.
Có ai khác tình cờ gặp phải điều này không?