JavaScript là một trợ giúp lớn khi chấp nhận dữ liệu ở dạng công khai trên các trang web;
Trong hướng dẫn này, chúng ta sẽ xây dựng một biểu mẫu đăng nhập đơn giản và thêm xác thực giao diện người dùng bằng vanilla JavaScript. Mục tiêu bao trùm là cung cấp phản hồi hữu ích cho người dùng cuối và đảm bảo dữ liệu được gửi là những gì chúng tôi muốn
thông tin
Hướng dẫn này được viết để người mới bắt đầu có thể làm theo—nhưng một số kiến thức JavaScript cơ bản và hiểu biết về các nguyên tắc viết mã chắc chắn sẽ hữu ích
Bản trình diễn trực tiếp về Xác thực biểu mẫu JavaScript của chúng tôi
Kiểm tra bút bên dưới để kiểm tra xác thực biểu mẫu JavaScript của chúng tôi—phân nhánh nó, vui lòng sao chép các đoạn mã và làm theo hướng dẫn để xem nó được tạo như thế nào
Tại sao JavaScript hiện đại hoạt động đủ tốt
Nhờ những tiến bộ gần đây trong JavaScript, chúng tôi có thể tự tin sử dụng JavaScript hiện đại để thực hiện xác thực biểu mẫu mà không có bất kỳ sự phụ thuộc nào
Tuy nhiên, một số khung ngoài tự nhiên đơn giản hóa chiến lược xác thực. Chúng tôi sẽ không sử dụng bất kỳ phụ thuộc nào cho hướng dẫn này để làm cho mọi thứ hoạt động
Điều đáng nói là trong nhiều tình huống, HTML5 có các xác thực tích hợp sẵn có thể hoạt động đủ tốt cho các dự án của bạn. Chúng có thể hữu ích nếu bạn không quan tâm đến việc tạo xác thực tùy chỉnh của mình hoặc không có thêm thời gian. Hướng dẫn này sẽ tận dụng lộ trình tùy chỉnh để làm cho trải nghiệm có thương hiệu hơn
Xác thực biểu mẫu HTML5 với thuộc tính “pattern”
Thoriq Firdaus
21 Th04 2021
1. Thêm đánh dấu
Bắt đầu với HTML, tôi đã tạo một biểu mẫu tạo tài khoản đơn giản được hiển thị ở giữa trang. Biểu mẫu có bốn trường đầu vào [tên người dùng, email, mật khẩu, xác nhận mật khẩu] và nút gửi đầu vào
Trong đánh dấu, chúng tôi sẽ thêm một số yếu tố bổ sung để cung cấp phản hồi xác thực cho người dùng cuối. Chúng bao gồm một số biểu tượng SVG [có nguồn gốc từ heroons. com và một số thẻ
512 trống. Đây là những hướng dẫn có thể thực hiện được nếu một trường không vượt qua xác thực
1
2
Create a new account
3
4
5
Username
0
1
2
3
4
5
6
7
8
9
20
21
22
24
25
26
27
28
3
Create a new account0
Create a new account1
Create a new account2
Create a new account3
8
Create a new account5
20
Create a new account7
Create a new account8
30
31
32
33
34
3
36
Create a new account1
38
39
8
1
20
3
4
6
7
8________6
Những điều cần lưu ý vào thời điểm này
- Mỗi trường đầu vào được nhóm trong phần tử
5
13 với lớp là5
14. Chúng tôi sẽ sử dụng CSS để thêm một số khoảng trống giữa mỗi trường. Trong mỗi nhóm, chúng tôi có một tập hợp các biểu tượng SVG, trường nhịp và trường đầu vào. Chúng tôi sẽ sử dụng các biểu tượng SVG để cung cấp gợi ý trực quan cho dù đầu vào hợp lệ hay không hợp lệ - Ban đầu, chúng tôi sẽ sử dụng CSS để ẩn từng biểu tượng khỏi chế độ xem. Sau đó, chúng tôi có thể tận dụng JavaScript để ẩn và hiển thị chúng so với đầu vào của người dùng
- Tôi cũng có kế hoạch hiển thị một thông báo hữu ích trong thẻ
5
15 với lớp5
16 nếu các xác thực của biểu mẫu được kích hoạt để thực thi. Có một thẻ5
15 duy nhất cho mỗi nhóm đầu vào - Cuối cùng, lưu ý rằng mỗi đầu vào có một id được gán. Thuộc tính id rất quan trọng đối với phần JavaScript của hướng dẫn
2. Tạo kiểu cho biểu mẫu bằng CSS
Để làm cho biểu mẫu dễ sử dụng và dễ truy cập hơn, chúng tôi sẽ thêm một số CSS
Tôi đã liên kết với Google Fonts Specimen có tên là Inter [mà bạn có thể nhận ra từ Tuts+]. Đó là một phông chữ sans-serif tuyệt vời có thể thích ứng với nhiều trường hợp sử dụng
Nếu bạn đang sử dụng CodePen và làm theo, bạn có thể tìm thấy phông chữ của chúng tôi được liên kết trong tùy chọn thẻ
518 bên trong khung HTML của trình chỉnh sửa
CSS tương đối đơn giản. Chúng tôi đang sử dụng CSS để ẩn tất cả các biểu tượng trong lần tải đầu tiên và sắp tới chúng tôi sẽ chuyển đổi trạng thái của chúng bằng JavaScript
1
51
2
53
3
55
4
5
58
0
Username0
2
55
4
6
Username5
7
Username7
9
55
21
22
02
24
04
26
55
28
Create a new account0
09
Create a new account2
11
Create a new account3
13
Create a new account5
15
Create a new account7
17
Create a new account8
19
30
21
32
23
34
55
36
38
28
39
30
1
55
3
4
35
6
37__
3. Cắm JavaScript
Bây giờ đến phần trình bày tính năng. Thêm JavaScript là những gì sẽ tạo ra hoặc phá vỡ biểu mẫu này
Tôi đã đề cập đến một vài mục tiêu trước đây, nhưng đây là toàn bộ danh sách trong một dàn ý
- Đảm bảo dữ liệu chính xác được nhập vào từng trường
- Hiển thị phản hồi hữu ích nếu trường hợp lệ hoặc không hợp lệ
- Không cho phép gửi biểu mẫu nếu bất kỳ trường nào không hợp lệ
- Xác thực biểu mẫu trong thời gian thực khi người dùng nhập hoặc nhấp vào Tạo tài khoản
suy nghĩ mô-đun
Với sự khởi đầu của ES6 và hỗ trợ thêm JavaScript trong các trình duyệt hiện đại, chúng tôi có thể tận dụng một số tính năng mới hơn cho phép mã chúng tôi viết có thể tái sử dụng nhiều hơn
Với ý nghĩ đó, tôi sẽ sử dụng mẫu
519 của JavaScript và tạo một Lớp mới có thể được sử dụng cho các biểu mẫu trong tương lai nếu cần
Các mẫu này bắt nguồn từ các khái niệm lập trình phụ trợ, tuy nhiên, trong JavaScript, nó được khai thác nhiều hơn vì JavaScript không phải là ngôn ngữ lập trình truyền thống. Tôi khuyên bạn nên đọc thêm về hoạt động bên trong của các lớp và hàm tạo nếu bạn muốn hiểu thêm đằng sau cách chúng hoạt động
Tôi nên đề cập rằng mã cuối cùng không phải là mô-đun 100%, nhưng ý tưởng là thay đổi nó theo cách đó càng nhiều càng tốt. Khi ứng dụng hoặc trang web của bạn mở rộng quy mô, bạn nên giải trí với ý tưởng về khung JavaScript vì các khung có xu hướng trích xuất logic lặp đi lặp lại. Những khung suy nghĩ này cho phép bạn sử dụng lại mã và giữ mọi thứ ngăn nắp hơn
Bắt đầu với một lớp học mới
Để bắt đầu, chúng ta sẽ tạo một lớp mới tên là
520
1
282
Chúng tôi sẽ thêm một hàm
521 bên trong lớp và chấp nhận hai đối số. Bạn có thể coi chức năng này là chức năng bạn nhận được miễn phí với bất kỳ lớp nào trong JavaScript. Ý tưởng là có thể gọi lớp sau này ở một nơi khác và chuyển các đối số để sử dụng lại. Điều đó có thể chưa rõ ràng 100%, nhưng khi chúng tôi tiến bộ, điều đó sẽ có ý nghĩa hơn
1
284
2
286
3___
288
43_______90
53_______92
0
55
Chúng ta sẽ khởi tạo các giá trị mới cho các thể hiện trong lớp
520 bên trong hàm
519. Các giá trị này cho phép chúng ta sử dụng chúng ở bất cứ đâu trong phạm vi của lớp, nhờ vào từ khóa
524. Trong trường hợp này,
524 đề cập đến lớp có phạm vi
520, nhưng
524 luôn có thể thay đổi dựa trên phạm vi của nó
Hàm
521 khởi tạo một biểu mẫu và các trường trong biểu mẫu. Mục tiêu của tôi là yêu cầu
520 trích xuất logic, vì vậy tất cả những gì chúng ta phải làm là chuyển các tham chiếu đến một biểu mẫu đã cho và trường của biểu mẫu đó theo số nhận dạng hoặc tên của chúng. Điều đó sẽ có ý nghĩa hơn trong một chút
Phần tử biểu mẫu mục tiêu
Tiếp theo, tôi sẽ tạo một số biến truy vấn
530 cho các phần tử mà chúng tôi sẽ nhắm mục tiêu. Tất nhiên, những thứ đó bao gồm biểu mẫu và các trường của nó
Với những thứ đó, chúng tôi có thể thiết lập một phiên bản mới của lớp
520 của chúng tôi
1
296
2
298
3
4
Create a new account01
Biến
532 chịu trách nhiệm truy vấn
530 để tìm phần tử biểu mẫu trên trang có lớp là
534. Biến
535 là một mảng các tên được tham chiếu bởi thuộc tính
536 của mỗi trường biểu mẫu. Tên trong HTML của bạn phải khớp với nội dung của các giá trị mảng để nhắm mục tiêu phù hợp. Chúng tôi sẽ sử dụng các giá trị mảng bên trong lớp
520 để truy vấn từng trường khi cần thiết
Biến
538 là tham chiếu của chúng ta đến một thể hiện mới của lớp
520. Chúng tôi chuyển vào các biến
532 và
535 để khởi tạo các biến đó bên trong lớp để sử dụng bất cứ nơi nào chúng tôi cần
Tại thời điểm này, không có gì được gọi từ lớp, vì vậy chúng tôi cần thêm một số mã để khởi động hành động đó
1
284
2
286
3
288
4
290
5
292
0
2
Create a new account14
4
Create a new account16
6
292
7
55
9
21
Create a new account23
22
298
24
26
Create a new account01
28
Create a new account0
Create a new account31
Tôi đã thêm một hàm
542 vào lớp
520 bên dưới hàm
519. Bạn có thể đặt tên cho chức năng này theo bất cứ điều gì bạn muốn, nhưng tôi thường sử dụng ____________42 làm tùy chọn
Bên trong hàm
542, tôi đã viết một câu lệnh
547 đơn giản và chuyển vào các giá trị mà chúng tôi đã thiết lập trong hàm
519. Nếu mọi việc suôn sẻ, điều này sẽ ghi lại phiên bản biểu mẫu của chúng tôi và mảng id trường mà tôi đã đề cập trước đó
Ở cuối tệp, tôi đang gọi trực tiếp hàm
549
1
Create a new account31
Điều đó sẽ ghi lại một cái gì đó như sau trong bảng điều khiển của trình duyệt của bạn
Sự thành công. Chúng tôi biết mã cho đến nay là chính xác nhờ những giá trị đó xuất ra những gì chúng tôi mong đợi
4. Thêm xác thực biểu mẫu khi người dùng nhập
Lắng nghe thông tin đầu vào của người dùng sẽ giúp chúng tôi xác thực trước từng trường. Chúng ta có thể nối vào phương thức
550 của JavaScript để làm điều đó. Bạn có thể nghe nhiều sự kiện khác nhau và trong phần này, chúng tôi sẽ chú ý cụ thể đến sự kiện
551
Tôi sẽ tạo một hàm mới trong lớp có tên là
552
1
284
2
Create a new account37
3
4
Create a new account40
5
Create a new account42
0
Create a new account44
2
Create a new account46
4
6
Create a new account49
7
Create a new account51
9
Create a new account53
21
Create a new account55
22
Create a new account57
24
292
26
55
Rất nhiều trong vài dòng mã này có thể gây nhầm lẫn. Hãy để tôi giải thích chi tiết hơn
Hiểu Phạm vi
Đầu tiên, chúng ta tạo một biến tên là
553 và gán nó cho
524
Việc thiết lập biến này hoạt động như một cách để nhắm mục tiêu giá trị của
524 so với phạm vi của lớp bao trùm [
520] từ bên trong các phạm vi lồng nhau khác
Lý do tôi đưa vào biến
553 là để chúng ta có thể truy cập vào lớp lõi
520 bên trong phương thức
559 vì phạm vi thay đổi nếu bạn lồng bất kỳ mã nào vào bên trong hàm. Đọc thêm về Phạm vi trên MDN
Vòng qua
Để xác thực đúng từng trường, chúng ta sẽ cần lặp qua từng thuộc tính mảng bên trong biến
535 mà chúng ta đã thiết lập bằng cách sử dụng hàm
519. Mã xuất ra từng tên trường mà chúng tôi muốn nhắm mục tiêu bằng phương thức
562
Trong vòng lặp, chúng tôi sử dụng dấu ngược để tự động truy vấn tài liệu [
530] để tìm trường thích hợp được xác định bởi thuộc tính
536
Cuối cùng, chúng ta sử dụng từng trường động, gán nó cho một biến đầu vào và gọi hàm
559. Chúng tôi lắng nghe một sự kiện
551 và gọi một chức năng mới mà chúng tôi sẽ tạo có tên là
567. Hàm này chấp nhận một đầu vào duy nhất cho mục đích xác thực
Tôi đã chọn trích xuất logic xác thực thành một hàm mới có tên là
568 vì phần lớn mã có thể tái sử dụng. Việc xóa mã thành chức năng mới cũng hỗ trợ mức độ dễ đọc theo quan điểm của nhà phát triển
5. Xác thực từng trường
Để xác thực các trường biểu mẫu, chúng tôi sẽ cần một số câu lệnh có điều kiện cùng với một số chuông và còi để làm cho giao diện phản ứng trong thời gian thực
Trước khi chúng ta viết logic cho hàm
567, tôi sẽ viết một hàm khác chịu trách nhiệm về phần thiết kế. Chúng ta có thể sử dụng lại chức năng này sau, vì vậy sẽ rất hợp lý khi trích xuất nó thành một bộ logic duy nhất, mà tôi gọi là
570
1
284
2
Create a new account65
3
4
Create a new account40
5
Create a new account42
0
Create a new account44
2
Create a new account46
4
6
Create a new account49
7
Create a new account51
9
Create a new account53
21
Create a new account55
22
Create a new account57
24
292
26
28
Create a new account90
Create a new account0
Create a new account92
Create a new account2
292
Create a new account3
Create a new account5
Create a new account97
Create a new account7
Create a new account99
Create a new account8
301
30
303
32
34
306
36
308
38
310
39
312
1
314
3
316
4
6________5__
Hàm
570 chấp nhận ba tham số. trường chúng tôi đang nhắm mục tiêu, thông báo nếu cần và trạng thái xác thực
Bên trong hàm, chúng ta bắt đầu với ba biến.
572,
573 và
574
Nếu bạn còn nhớ, mỗi nhóm biểu mẫu có một tập hợp các thành phần này trong phần đánh dấu. Hai là biểu tượng SVG và biểu tượng còn lại là một
515 trống chịu trách nhiệm hiển thị nội dung văn bản nếu xác thực không thành công. Tham số
576 sẽ là cách mỗi biểu tượng lặp lại và thẻ
515 được nhắm mục tiêu tương ứng với vị trí của nó trong
530
Bên dưới các biến là hai câu lệnh điều kiện kiểm tra các giá trị chuỗi
579 mà chúng ta sẽ thêm vào hàm
567
Một câu lệnh kiểm tra trạng thái
581 và câu lệnh kia cho trạng thái
582 được biểu thị bằng tham số trạng thái được chuyển qua hàm
570
Trong mỗi điều kiện, bạn sẽ tìm thấy nhiều logic hơn để chuyển đổi các lớp biểu tượng và đặt lại thông báo lỗi thành bất kỳ thông báo nào được chuyển đến hàm
570. Tất cả logic trong mã này đều diễn ra trong thời gian thực khi người dùng nhập vào một trường
Đảm bảo các trường không trống
Với hàm
570 được tạo, giờ đây chúng ta có thể đưa nó vào sử dụng bằng cách thực hiện xác thực trên từng trường. Tùy thuộc vào biểu mẫu của bạn, bạn có thể yêu cầu xác thực duy nhất nếu bạn có các trường biểu mẫu riêng lẻ. Có thể bạn không muốn bất kỳ trường nào để trống chẳng hạn
Chúng tôi sẽ bắt đầu với mục tiêu đó và đảm bảo mỗi trường không trống
1
284
2
337
3
339
4
341
5
343
0
345
2
347
4
316
6
292
7
9
Create a new account97
21
356
22
292
24
55
Đoạn mã trên lấy đối số
576 và nhắm mục tiêu giá trị của nó. Sử dụng phương thức
587 trong JavaScript, chúng tôi có thể xóa mọi khoảng trắng và kiểm tra xem giá trị có phải là chuỗi rỗng không
Nếu đầu vào trống, chúng tôi sẽ sử dụng hàm
570 và chuyển trường, câu lệnh truy vấn để tìm thẻ khoảng thời gian
589 liên quan đến trường và trạng thái của
582
Nếu đầu vào không trống, chúng ta có thể sử dụng hàm
570 tương tự trong lớp
520 để hiển thị trạng thái thành công. Trạng thái này không cần thông báo nên chúng ta có thể chuyển
593 cho đối số
594
Đảm bảo địa chỉ email hợp lệ
Khi tạo xác thực biểu mẫu JavaScript của riêng bạn, việc kiểm tra các địa chỉ email hợp lệ tự nó là một nghệ thuật. Đây là cách chúng ta sẽ thực hiện
1
284
2
337
3
339
4
368
5
341
0
343
2
345
4
347
6
316
7
9
381
21
383
22
385
24
387
26
389
28
391
Create a new account0
393
Create a new account2
395
Create a new account3
316
Create a new account5
292
Create a new account7
Create a new account8
Create a new account97
30
356
32
292
34
55
Đầu tiên, chúng tôi sẽ đảm bảo loại trường được xác định bằng API JavaScript là loại email
Sau đó, chúng tôi sẽ tận dụng một số mẫu
595 để đảm bảo email được nhập phù hợp với mong đợi của chúng tôi. Phương thức
596 cho phép bạn chuyển vào một mẫu
595 để trả về một giá trị boolean [giá trị ____0_______98 hoặc
599] bằng cách “thử nghiệm” nó với giá trị đã cho
Nếu giá trị vượt trội, chúng tôi sẽ lại sử dụng hàm
570 để hiển thị phản hồi cho người dùng. Chúng tôi có thể tùy chỉnh giá trị
594 thành bất kỳ giá trị nào hợp lý để xác thực
Xác nhận mật khẩu
Cuối cùng nhưng không kém phần quan trọng là xác thực xác nhận mật khẩu. Mục tiêu là đảm bảo trường mật khẩu khớp với trường xác nhận mật khẩu và chúng tôi sẽ thực hiện việc này bằng cách so sánh cả hai giá trị
1
284
2
337
3
339
4
368
5
341
0
20
2
316
4
6
381
7
383
9
20
21
316
22
24
34
26
36
28
38
Create a new account0
Create a new account2
41
Create a new account3
43
Create a new account5
45
Create a new account7
47
Create a new account8
391
30
389
32
395
34
316
36
292
38
39
Create a new account97
1
356
3
292
4________0_
Chúng ta cần tiến thêm một bước để xác thực nhiều trường hợp cạnh cho trường xác nhận mật khẩu. Tất nhiên, xác nhận mật khẩu không thể là trường trống và chúng tôi cũng cần đảm bảo rằng nó khớp với giá trị trường nhập mật khẩu
Đối với mỗi trường hợp, chúng tôi hiển thị trạng thái phù hợp
6. Xác thực khi gửi
Xác thực biểu mẫu JavaScript của chúng tôi gần như hoàn tất. Nhưng chúng tôi vẫn chưa tính đến nút gửi, một phần quan trọng của chính biểu mẫu. Chúng ta sẽ cần lặp lại quy trình mà chúng ta đã thực hiện cho sự kiện
551 cho sự kiện
Username03 bằng cách sử dụng một hàm ________0____59 khác
Điều đó sẽ đến từ một chức năng khác mà tôi sẽ gọi là
Username05
1
284
2
337
3
72
4
Create a new account42
5
0
77
2
79
4
81
6
83
7
Create a new account53
9
Create a new account55
21
Create a new account57
22
292
24
55
Trong hàm
Username05, chúng ta sẽ nhắm mục tiêu đối tượng
532 mà chúng ta đã thiết lập trên hàm
519 trước đây. Biểu mẫu cho phép chúng tôi truy cập vào loại trình xử lý sự kiện được gọi là
Username03 vì các phần tử đó được liên kết với nhau trong HTML
Sử dụng một chức năng
550, chúng tôi sẽ lắng nghe sự kiện
Username03 và chuyển
Username12 qua phần thân của chức năng
Bên trong thân hàm, chúng ta có thể sử dụng phương thức
Username13 để giữ cho biểu mẫu không gửi theo cách mặc định của nó. Chúng tôi muốn làm điều này để ngăn chặn bất kỳ dữ liệu khó chịu nào chuyển qua nếu quá trình xác thực không được thông qua
Một lần nữa, chúng ta sẽ đặt một biến
553 được gán cho
524 để chúng ta có quyền truy cập vào cấp phạm vi cao hơn trong lớp
520 của chúng ta
Với biến này, chúng ta có thể lặp qua đối tượng
535 được khởi tạo trong lớp
520. Điều đó được thực hiện từ bên trong hàm
550
Mỗi trường chúng ta lặp qua được gán cho một biến
551 và cuối cùng được chuyển qua hàm
567 mà chúng ta đã tạo trước đó
Rất nhiều điều đang xảy ra ở đây, nhưng thật may mắn là chúng ta có thể sử dụng lại rất nhiều mã từ trước đó để đạt được những mục tiêu tương tự
Nhấp vào nút Tạo tài khoản để đảm bảo mỗi trường đều hợp lệ trước khi hoàn tất
7. Gọi Xác thực
Phần cuối cùng của câu đố xác thực biểu mẫu JavaScript đang gọi cả hai hàm
552 và
Username05. Nếu bạn còn nhớ, chúng tôi đã gọi hàm
549 ở phần đầu của hướng dẫn này. Tôi sẽ sử dụng nó để gọi hai chức năng
1
284
2
286
3___
288
43_______90
53_______92
0
2
Create a new account14
4
408
6
410
7_______3_______92_______2_______9_______3_______1_______7_______5__
Kết quả cuối cùng
Với tất cả các chức năng và xác thực của chúng tôi, đây là mã xác thực biểu mẫu JavaScript cuối cùng để tham khảo. Phần lớn mã này có thể tái sử dụng và bạn luôn có thể thêm các loại trường bổ sung
1
284
2
286
3
288
4
290
5
292
0
2
Create a new account14
4
408
6
410
7
292
9
21
72
22
Create a new account42
24
26
444
28
79
Create a new account0
81
Create a new account2
83
Create a new account3
Create a new account53
Create a new account5
Create a new account55
Create a new account7
Create a new account57
Create a new account8
292
30
32
Create a new account40
34
Create a new account42
36
465
38
Create a new account46
39
1
470
3
Create a new account53
4
Create a new account55________6_
Một Lời Cảnh Báo
Nếu người dùng tắt JavaScript trong trình duyệt của họ, bạn có nguy cơ để dữ liệu không đầy đủ vào trang web hoặc ứng dụng của mình. Vấn đề này là nhược điểm của việc chỉ sử dụng xác thực biểu mẫu giao diện người dùng
Tôi khuyên bạn nên thêm giải pháp dự phòng để xác thực biểu mẫu bằng cách sử dụng thứ gì đó như mã phụ trợ
Tôi viết rất nhiều ứng dụng sử dụng mã giao diện người dùng và mã phụ trợ bằng khung ứng dụng web như Ruby on Rails. Khung xử lý rất nhiều vấn đề này cho tôi cùng với các tính năng bảo mật nâng cao
Ngay cả khi tôi thêm xác thực giao diện người dùng, hầu như tôi sẽ luôn chủ động thêm xác thực phụ trợ vào ứng dụng hoặc trang web
Việc thêm xác thực chương trình phụ trợ đảm bảo rằng nếu JavaScript tình cờ bị vô hiệu hóa trong trình duyệt hoặc có thể xảy ra sự cố ngẫu nhiên, tôi vẫn có thể dựa vào mã chương trình phụ trợ [thường là trên máy chủ] để loại bỏ dữ liệu không đủ
Bớt tư tưởng
Mặc dù có nhiều cải tiến mà chúng tôi có thể thực hiện đối với biểu mẫu tạo tài khoản mẫu này, nhưng tôi hy vọng các phương pháp tiếp cận được thực hiện trong hướng dẫn này đã làm sáng tỏ một số cách bạn có thể cải thiện biểu mẫu của riêng mình bằng xác thực JavaScript đơn giản
Hãy nhớ rằng, xác thực giao diện người dùng chỉ là một phần của dữ liệu gửi biểu mẫu xác thực đúng cách
Giải pháp phụ trợ hoặc một số bước trung gian để lọc dữ liệu là một rào cản đáng kể để ngăn dữ liệu khó chịu tiếp cận bất cứ nơi nào bạn lưu trữ dữ liệu của mình. Mã hóa vui vẻ