Xác thực mẫu bootstrap

Kiểm tra tính hợp lệ của biểu mẫu có tầm quan trọng đối với một trang web bảo mật cũng như tính khả dụng của nó. Quá trình xác nhận đánh giá các giá trị đầu vào có định dạng đúng hay không trước khi gửi nó. Ví dụ, nếu chúng ta có một trường dữ liệu cho một địa chỉ email, thì giá trị chắc chắn phải có một địa chỉ email hợp lệ;

Đặc tả HTML5 làm cho công việc xác nhận trở nên dễ dàng hơn với sự ra đời của các kiểu trường nhập liệu mới như

 action="somefile.php">
17,
 action="somefile.php">
18, và
 action="somefile.php">
19, và chúng cũng đi kèm với quy tắt kiểm tra được định nghĩa trước đó. Bất kể khi nào giá trị cho trước không đáp ứng với các định dạng bắt buộc, thì các trường dữ liệu này sẽ đưa ra một thông báo lỗi, từ đó Ngăn chặn việc gửi dữ liệu đi

Xác thực mẫu bootstrap
Xác thực mẫu bootstrap
Xác thực mẫu bootstrap
Thông báo lỗi trong địa chỉ email không hợp lệ (Chrome)

Tuy nhiên, kỳ vọng mỗi trường hợp đầu vào đều được cung cấp khả năng kiểm tra là không thực tế. Nếu bạn có một tên người dùng, mã zip hoặc bất kỳ loại dữ liệu đặc biệt nào không được chỉ định như kiểu đầu vào tiêu chuẩn thì sao?

Sử dụng thuộc tính Pattern

Thuộc tính

 action="somefile.php">
15 này chỉ được áp dụng trên các phần tử của
 action="somefile.php">
22. Nó cho phép chúng ta xác định quy tắc kiểm tra giá trị đầu vào riêng của chúng ta bằng cách sử dụng Biểu thức chính quy (RegEx). Một lần nữa, nếu giá trị không khớp với mẫu đã định trước, thì phần tử đầu vào sẽ đưa ra một lỗi

Ví dụ, giả sử chúng ta có một tên người dùng đầu vào trong biểu mẫu của chúng ta. Không có một loại tiêu chuẩn nào cho tên người dùng, do đó chúng ta sử dụng thông tin đầu vào

 action="somefile.php">
23 thông thường

1
______0
 action="somefile.php">
0
 action="somefile.php">
1
 action="somefile.php">
2
 action="somefile.php">
3

Please ĐỊNH NGHĨA MỘT QUY ĐỊNH ĐỂ SỬ DỤNG THUỘC TÍNH

 action="somefile.php">
15. Trong trường hợp này, chúng tôi sẽ chỉ ra rằng tên người dùng chỉ nên bao gồm chữ thường; . Ngoài ra, chiều dài tên người dùng không nên có nhiều hơn 15 ký tự. Trong RegEx, quy tắc này có thể được biểu diễn như sau
 action="somefile.php">
25

Add

 action="somefile.php">
25 as as value of the property
 action="somefile.php">
15 in input name user of them ta

1
____0
 action="somefile.php">
0
 action="somefile.php">
1
 action="somefile.php">
2
 action="somefile.php">
3

Bây giờ, vì nó chỉ chấp nhận chữ thường, nên khi gửi bất kỳ giá trị nào khác sẽ đưa ra một thông báo lỗi

Xác thực mẫu bootstrap
Xác thực mẫu bootstrap
Xác thực mẫu bootstrap
Thông báo lỗi, phát biểu rằng giá trị nhập vào không trùng với mẫu

Như bạn đã thấy ở trên, thông báo lỗi nói "Vui lòng khớp định dạng được yêu cầu. "Xác nhận hoạt động của họ, nhưng thông báo này không giúp người dùng của họ hiểu được mẫu được yêu cầu thực sự là gì. UX fail

Tùy chọn thông báo xác nhận thông báo

May mắn thay, chúng ta có thể tùy biến thông báo để biến nó trở nên hữu ích hơn, và chúng ta có một vài cách để làm như vậy. Cách dễ nhất chỉ là xác định một thuộc tính

 action="somefile.php">
28 bên trong phần tử đầu vào của chúng ta

1
_______0
 action="somefile.php">
0
 action="somefile.php">
5
 action="somefile.php">
2
 action="somefile.php">
7
 action="somefile.php">
8
 action="somefile.php">
9
 action="somefile.php">
00
 action="somefile.php">
01
 action="somefile.php">
02
 action="somefile.php">
03
 action="somefile.php">
04
 action="somefile.php">
05
 action="somefile.php">
06
 action="somefile.php">
3

Bây giờ tiêu đề đã được thêm vào trong cùng với thông báo mặc định

Xác thực mẫu bootstrap
Xác thực mẫu bootstrap
Xác thực mẫu bootstrap

Tuy nhiên, thông báo bật lên là không đồng nhất. Nếu chúng ta so sánh nó với một trong những thông báo do loại email đầu vào được hiển thị trước đó, thì các sự thật chỉ có thể nổi bật hơn.

Cách thứ hai sẽ giải quyết vấn đề này cho chúng ta

Thay thế thông báo xác nhận mặc định

Bây giờ hãy thay thế thông báo "Vui lòng khớp định dạng được yêu cầu" mặc định bằng một thông báo hoàn toàn tùy biến. Chúng ta sẽ sử dụng một chút JavaScript để làm điều này

Bắt đầu bằng cách thêm một

 action="somefile.php">
29 vào phần tử
 action="somefile.php">
22, để có thể chọn nó thuận tiện hơn

1
 action="somefile.php">
 action="somefile.php">
0
 action="somefile.php">
11
 action="somefile.php">
2
 action="somefile.php">
13
 action="somefile.php">
8
 action="somefile.php">
15
 action="somefile.php">
00
 action="somefile.php">
17
 action="somefile.php">
02
 action="somefile.php">
19
 action="somefile.php">
04
 action="somefile.php">
21
 action="somefile.php">
06
 action="somefile.php">
3

Bây giờ, chúng ta có thể chọn phần tử đầu vào bằng cách sử dụng JavaScript và gán nó cho một biến (hoặc giữa các thẻ

 action="somefile.php">
31 trên trang của chúng ta, hoặc trong một tệp JavaScript riêng, hoặc trong cửa sổ JS trên CodePen)

1
 action="somefile.php">
25

Cuối cùng, chúng ta chỉ định một thông báo được sử dụng khi đầu vào hiển thị trạng thái không hợp lệ của nó

_______8____127____10

 action="somefile.php">
29
 action="somefile.php">
2
 action="somefile.php">
31

Sự kiện

 action="somefile.php">
32 kế thừa một đối tượng
 action="somefile.php">
33 chứa một số thuộc tính, bao gồm
 action="somefile.php">
34 (phần tử không hợp lệ) và
 action="somefile.php">
35 chứa thông báo lỗi. Trong ví dụ trên, chúng ta đã thay thế thông báo bằng cách sử dụng phương thức
 action="somefile.php">
36

Bây giờ, chúng ta sẽ thấy thông báo tùy biến thay thế cái mặc định

Xác thực mẫu bootstrap
Xác thực mẫu bootstrap
Xác thực mẫu bootstrap

Định phong cách

Để bổ sung cho kiểu đầu vào mới và các phương thức này để thiết lập một thông báo xác nhận biến tùy chỉnh, đặc tả CSS3 mang đến một vài lớp giả hữu ích,

 action="somefile.php">
37 và
 action="somefile.php">
38. Những cái này cho phép chúng ta áp dụng tùy chọn phong cách vào trạng thái xác nhận của đầu vào, ví dụ

1
_______133
 action="somefile.php">
0
 action="somefile.php">
35
 action="somefile.php">
2
 action="somefile.php">
31
 action="somefile.php">
8
 action="somefile.php">
39
 action="somefile.php">
00
1
1
 action="somefile.php">
02
1
3
 action="somefile.php">
04
 action="somefile.php">
31

Có một số thứ cần lưu ý khi sử dụng các lớp giả

  • Đầu tiên,
     action="somefile.php">
    
    37 được áp dụng mặc định, ngay cả khi giá trị đầu vào trống. Vì vậy, nếu bạn có thể nhìn thấy ở trên, chúng ta đặt
     action="somefile.php">
    
    40
     action="somefile.php">
    
    41; . Giá trị trống luôn được xem là hợp lệ, trừ khi chúng ta bổ sung thuộc tính
     action="somefile.php">
    
    42. Trong trường hợp đó, đầu vào không hợp lệ và viền màu đỏ được đưa ra
  • Các cách cho hợp lệ và không hợp lệ được áp dụng ngay lập tức khi người dùng đang nhập, ngay cả khi giá trị trống. Change the style of the now set up to make up the Rối loạn người dùng

One from about style notification Popup

Xác nhận biểu mẫu đã trở thành một tiêu chuẩn mới sau mỗi một HTML5 mô tả cụ thể, nhưng các cửa sổ bật lên lỗi xuất hiện hoàn toàn tùy thuộc vào các nhà cung cấp trình duyệt thì như thế nào. Kỳ vọng cái đẹp khác nhau trong các trình duyệt khác nhau, sẽ không giúp tạo ra sự thống nhất của giao diện người dùng

Xác thực mẫu bootstrap
Xác thực mẫu bootstrap
Xác thực mẫu bootstrap

Google Chrome Ngăn chặn tùy chọn phong cách bật lên mặc định cách đây một vài năm. Nếu điều này là cái mà bạn muốn đạt được, lựa chọn duy nhất còn lại là hoàn toàn có thể thay thế cửa sổ bật lên thông báo bằng cách sử dụng JavaScript, vì vậy, hãy xem nó hoạt động như thế nào

Upgrade cao hơn

Chúng ta sẽ tạo một tùy chọn bật lên sẽ xuất hiện khi giá trị của đầu vào không hợp lệ. Để bắt đầu, chúng ta cần chọn một số phần tử cần thiết, cụ thể là

 action="somefile.php">
22 và
 action="somefile.php">
44

_______8____125____10

1
9

Tiếp theo, chúng ta sẽ tạo ra một phần tử mới sẽ chứa thông báo của chúng ta

1
 action="somefile.php">
1
 action="somefile.php">
0
 action="somefile.php">
3
 action="somefile.php">
2
 action="somefile.php">
5
 action="somefile.php">
8
 action="somefile.php">
7

Ở đây, chúng tôi tạo ra một phần tử

 action="somefile.php">
45 mới. Chúng tôi gán cho nó id là
 action="somefile.php">
46, và ẩn nó đi bằng cách thiết lập thuộc tính
 action="somefile.php">
47 thành
 action="somefile.php">
48. Cuối cùng, chúng ta bổ sung 
 action="somefile.php">
45 mới vào bên trong
 action="somefile.php">
44

Làm việc với các sự kiện

Có hai sự kiện chúng ta cần phải xử lý. Đầu tiên, sự kiện

 action="somefile.php">
51 được gọi khi giá trị của đầu vào không khớp với mẫu. We will run code after here side in the event
 action="somefile.php">
51

1
_______09
 action="somefile.php">
0
 action="somefile.php">
01
 action="somefile.php">
2
 action="somefile.php">
03
 action="somefile.php">
8
 action="somefile.php">
05
 action="somefile.php">
00
 action="somefile.php">
07
 action="somefile.php">
02
 action="somefile.php">
09
 action="somefile.php">
04
 action="somefile.php">
06
 action="somefile.php">
12
 action="somefile.php">
13
 action="somefile.php">
14
 action="somefile.php">
15
 action="somefile.php">
16

Ở đây, với

 action="somefile.php">
53; . Thay vào đó, chúng ta sẽ hiển thị thông báo riêng thông qua phần tử
 action="somefile.php">
45 mới của chúng ta. Chúng ta thêm thông báo bên trong nội dung, thêm một lớp mới,
 action="somefile.php">
55 và hiển thị thông báo bằng cách thiết lập thuộc tính hiển thị thành
 action="somefile.php">
56

Chúng ta cũng thêm một lớp,

 action="somefile.php">
51, vào phần tử đầu vào, để nó viền màu đỏ. Chúng ta cũng cần phải thiết lập quy tắc phong cách trong biểu định kiểu CSS

1
______218
 action="somefile.php">
0____000
 action="somefile.php">
2
 action="somefile.php">
31

Ngoài ra, bạn cũng có thể thêm các lớp

 action="somefile.php">
58 từ Animate. css. Điều này cung cấp cho nó một hiệu ứng đặc biệt bằng cách sử dụng hiệu ứng rung (lắc)

Sự kiện thứ hai là sự kiện

 action="somefile.php">
22. Sự kiện này được gọi khi giá trị của đầu vào thay đổi. Chúng ta sẽ sử dụng sự kiện này để chuyển trạng thái của đầu vào về bình thường, cũng như ẩn thông báo bật lên, như sau

1
_______004
 action="somefile.php">
0
 action="somefile.php">
06
 action="somefile.php">
2
 action="somefile.php">
08
 action="somefile.php">
8
 action="somefile.php">
10
 action="somefile.php">
00
 action="somefile.php">
14
 action="somefile.php">
02
 action="somefile.php">
16

Nếu bạn có thể thấy ở trên, chúng tôi sẽ loại bỏ tên lớp khỏi phần tử

 action="somefile.php">
22 và ẩn thông báo bật lên

Xác thực mẫu bootstrap
Xác thực mẫu bootstrap
Xác thực mẫu bootstrap

Bây giờ chúng ta đã có một thông báo xác nhận hoàn toàn tùy biến. Please try it. input any invalid value

Lưu ý. Đừng quên ghé qua GraphicRiver nếu bạn đang tìm cảm hứng để thiết kế giao diện form

Kết luận

Sử dụng kiểu đầu vào tiêu chuẩn giống với thuộc tính

 action="somefile.php">
15 sẽ cung cấp cho biểu mẫu của bạn một lớp xác nhận, nhưng lưu ý rằng bạn nên thực hiện một số kiểu xác nhận trên máy chủ

Ngạc nhiên là, ngay cả khi người dùng đã vô hiệu hóa JavaScript trong quá trình duyệt, thì trình duyệt mới nhất sẽ vẫn hiển thị cửa sổ bật lên xác nhận và ngăn chặn việc gửi biểu mẫu. Tuy nhiên, Safari, không hỗ trợ mẫu thuộc tính tại thời điểm bài viết. Tính năng tương tự có thể được thêm vào bằng cách sử dụng Webshim Lib polyfill

Tôi hy vọng bạn thích hướng dẫn này và giữ nó như một tài liệu tham khảo tiện dụng cho việc xác nhận bằng HTML5