Tôi đã xem rất nhiều bài báo và bài đăng về vấn đề này trong vài năm qua và đó là một cách rất hữu ích để hướng dẫn người dùng nhập liệu. Tuy nhiên, vẫn còn quá nhiều triển khai có lỗ hổng, giám sát làm tê liệt và lỗi triển khai
Khái niệm tổng thể là âm thanh. Sử dụng các thuộc tính HTML 5 để hạn chế những gì có thể được gửi đến máy chủ, sau đó cải thiện nó bằng Javascript để hạn chế những gì người dùng là…
Trong HTML, thẻ đầu vào có thể được đặt thành chỉ nhận các đầu vào số bằng cách đặt thuộc tính loại của nó thành số hoặc thành số điện thoại. Tuy nhiên, thực hiện nó thông qua JavaScript sẽ hơi phức tạp một chút
Bước 1. Tài liệu HTML
Tạo tệp HTML và trong tệp đó, thiết lập trường nhập và một số văn bản yêu cầu người dùng nhập dữ liệu vào trường văn bản với sự trợ giúp của các dòng sau
Enter Numbers here
Trong những dòng này
- Thuộc tính onkeypress của thẻ đầu vào đã được đặt thành giá trị trả về của phương thức checkNumber[]
- Thuộc tính onkeypress được thực thi trên một sự kiện cụ thể đang xảy ra và sự kiện này xảy ra là một lần nhấn phím, vì vậy hãy truyền sự kiện bên trong phương thức checkNumber[]
Chạy trang web HTML bây giờ sẽ cho kết quả như sau trên trình duyệt
Hiện tại, tất cả các loại ký tự có thể được viết bên trong trường văn bản này
Nhưng điều này sẽ thay đổi trong phần tiếp theo
Bước 2. Thiết lập mã JavaScript
In the JavaScript file or in the tag, start by creating the function named as checkNumber[]:
Số kiểm tra chức năng [ sự kiện ] {
// The upcoming lines come inside here
}
Bên trong hàm này, việc đầu tiên là lấy mã ASCII của phím bấm bằng cách sử dụng biến “sự kiện”
var aCode = . sự kiện nào ? . mà . sự kiện. mã khóa;
Sau đó, nếu mã ASCII không phải là số, thì trả về false cho trường nhập nếu không thì trả về true
if [ aCode > 31 && [aCode 57]] return false;
return true;
Đoạn mã hoàn chỉnh sẽ là
số kiểm tra chức năng [ sự kiện ] {
var aCode = event.sự kiện nào ? . mà . sự kiện. Mã khoá;
nếu [ aMã . > 31 && [aCode 57]] return false;
return true;
}
Như vậy là bạn đã hoàn tất việc thiết lập phần JavaScript
Bước 3. Kiểm tra trường đầu vào
Sau khi bạn hoàn thành bước 1 và bước 2, chỉ cần thực thi tài liệu HTML và thử đặt các giá trị bên trong trường đầu vào và quan sát hành vi của nó
Nó hiện chỉ cho phép viết số bên trong nó và bỏ qua các ký tự khác
Sự kết luận
Để hạn chế người dùng chỉ nhập các ký tự số bên trong đầu vào bằng JavaScript. Sau đó, trong trường hợp đó, hãy gọi một hàm trên mọi phím được nhấn bên trong trường nhập đó và trong hàm này, hãy so sánh mã ASCII của phím được nhấn với mã ASCII của các giá trị số. Dựa trên sự so sánh này, hãy cho phép nhập các phím bên trong trường nhập liệu
Bài viết này sẽ giới thiệu một số phương pháp để chỉ cho phép nhập số trong trường nhập văn bản trong HTML
Sử dụng
Click
3 trong thẻ
Click
4 để chỉ cho phép nhập số trong HTML
Click
Click
Trong HTML, chúng tôi sử dụng thẻ
Click
4 để lấy thông tin đầu vào từ người dùngChúng tôi có thể chỉ định loại đầu vào với thuộc tính
Click
6 trong thẻ
Click
4. Thẻ
Click
4 chấp nhận nhiều loại đầu vào khác nhau như văn bản, số, mật khẩu, email, v.v.Chúng ta có thể sử dụng thuộc tính
Click
6 để chỉ cho phép nhập số trong HTML. Ví dụ: tạo thẻ
Click
4 với thuộc tính
Click
6 là
Click
1Tiếp theo, tạo một nút gửi. Biểu mẫu sẽ không được gửi khi chúng tôi nhập bất kỳ ký tự nào thay vì số
Tuy nhiên, hành vi là khác nhau giữa các trình duyệt
Trong Firefox, ví dụ bên dưới cho phép mọi đầu vào trong vùng nhập liệu. Nhưng nó không để giá trị được gửi khi nhấp vào nút
Trong trường hợp của Chrome, nó không cho phép nhập bất kỳ ký tự nào khác ngoài ký tự số. Firefox cho phép dán các đầu vào khác, nhưng Chrome không cho phép
Ví dụ: nếu chúng tôi sao chép một số văn bản ngẫu nhiên và dán văn bản đó vào khu vực nhập liệu trong Firefox, văn bản đó sẽ được dán, nhưng điều này không xảy ra trong Chrome. Hành vi này cũng tương tự khi kéo và thả nội dung vào vùng văn bản
Vì vậy, để thêm một số xác thực, chúng tôi có thể vô hiệu hóa thao tác kéo và thả và dán trong vùng văn bản. Chẳng hạn, viết các thuộc tính
Click
2 và
Click
3 trong thẻ
Click
4 và viết
Click
5 làm giá trị của chúngBằng cách này, tính năng sao chép-dán và kéo và thả sẽ bị tắt trong vùng văn bản
Mã ví dụ
Click
Viết xác thực phía máy khách bằng JavaScript để chỉ cho phép nhập số trong HTML
Mặc dù phương pháp trên không hoạt động hoàn hảo trong tất cả các trình duyệt, nhưng cần phải thêm một số xác thực phía máy khách để chỉ cho phép nhập các giá trị số trong vùng văn bản. Để làm được điều đó, chúng ta cần viết một số JavaScript
Chúng tôi cần thêm xác thực như vậy khi đầu vào từ giá trị
Click
6 chỉ có thể được chấp nhận. Vì thế, chúng tôi có một sự kiện
Click
7 trong JavaScriptSự kiện
Click
7 thực hiện khi người dùng nhấn phím. Trong sự kiện
Click
7, chúng tôi chỉ có thể trả về các giá trị giữa
Click
6Chúng ta có thể sử dụng thuộc tính
Click
31 để lấy mã ký tự của đầu vào được nhấnVí dụ, viết sự kiện
Click
7 như một thuộc tính trong thẻ
Click
4Bên trong thuộc tính trả về câu lệnh
Click
34 và
Click
35 sử dụng toán tử
Click
36 như trong ví dụ bên dưới. Sau đó, viết thuộc tính
Click
37 vào cuối thẻ
Click
4Trong ví dụ bên dưới,
Click
39 và
Click
40 lần lượt là mã ký tự Unicode của
Click
41 và
Click
42. JavaScript sẽ chỉ trả về giá trị từ
Click
6Đó là cách chúng ta có thể sử dụng sự kiện
Click
7 cùng với thuộc tính
Click
31 để chỉ cho phép nhập số trong HTML