Trình duyệt có thể chọn cung cấp mũi tên bước để cho phép người dùng tăng và giảm giá trị bằng cách sử dụng chuột của họ hoặc bằng cách chạm vào đầu ngón tay.
<labelfor="ticketNum">Number of tickets you would like to buy:</label><inputid="ticketNum"type="number"name="ticketNum"value="0"/>
0 và
<labelfor="ticketNum">Number of tickets you would like to buy:</label><inputid="ticketNum"type="number"name="ticketNum"value="0"/>
1
<label for="ticketNum">Number of tickets you would like to buy:</label>
<input id="ticketNum" type="number" name="ticketNum" value="0" />
3
Được hỗ trợ các thuộc tính chung
<input type="number" placeholder="multiple of 10" step="10" />
1
<labelfor="ticketNum">Number of tickets you would like to buy:</label><inputid="ticketNum"type="number"name="ticketNum"value="0"/>
2,
<labelfor="ticketNum">Number of tickets you would like to buy:</label><inputid="ticketNum"type="number"name="ticketNum"value="0"/>
3,
<labelfor="ticketNum">Number of tickets you would like to buy:</label><inputid="ticketNum"type="number"name="ticketNum"value="0"/>
4,
<labelfor="ticketNum">Number of tickets you would like to buy:</label><inputid="ticketNum"type="number"name="ticketNum"value="0"/>
5
Thuộc tính IDL
<input type="number" placeholder="multiple of 10" step="10" />
4
<labelfor="ticketNum">Number of tickets you would like to buy:</label><inputid="ticketNum"type="number"name="ticketNum"value="0"/>
3,
<labelfor="ticketNum">Number of tickets you would like to buy:</label><inputid="ticketNum"type="number"name="ticketNum"value="0"/>
7,
<labelfor="ticketNum">Number of tickets you would like to buy:</label><inputid="ticketNum"type="number"name="ticketNum"value="0"/>
8
Giao diện DOM
<label for="ticketNum">Number of tickets you would like to buy:</label>
<input id="ticketNum" type="number" name="ticketNum" value="0" />
4
Phương pháp
<inputtype="number"placeholder="Multiple of 10"/>
0,
<inputtype="number"placeholder="Multiple of 10"/>
1,
<inputtype="number"placeholder="Multiple of 10"/>
2
Một số đại diện cho giá trị của số được nhập vào đầu vào. Bạn có thể đặt giá trị mặc định cho đầu vào bằng cách bao gồm một số bên trong thuộc tính
<labelfor="ticketNum">Number of tickets you would like to buy:</label><inputid="ticketNum"type="number"name="ticketNum"value="0"/>
7, như vậy: Avoid using the
<labelfor="ticketNum">Number of tickets you would like to buy:</label><inputid="ticketNum"type="number"name="ticketNum"value="0"/>
4 attribute if you can. It is not as semantically useful as other ways to explain your form, and can cause unexpected technical issues with your content. See
Labels and placeholders in : The Input (Form Input) element for more information.
Thuộc tính bổ sung
Ngoài các thuộc tính thường được hỗ trợ bởi tất cả các loại
8 cung cấp một danh sách các giá trị được xác định trước để đề xuất cho người dùng cho đầu vào này. Bất kỳ giá trị nào trong danh sách không tương thích với
<inputtype="number"placeholder="multiple of 10"step="10"/>
0 không được bao gồm trong các tùy chọn được đề xuất. Các giá trị được cung cấp là các đề xuất, không phải yêu cầu: Người dùng có thể chọn từ danh sách được xác định trước này hoặc cung cấp một giá trị khác. Because a read-only field cannot have a value,
<inputtype="number"placeholder="multiple of 10"step="10"min="0"max="100"/>
6 does not have any effect on inputs with the
<labelfor="ticketNum">Number of tickets you would like to buy:</label><inputid="ticketNum"type="number"name="ticketNum"value="0"/>
5 attribute also specified.
<input type="number" placeholder="multiple of 10" step="10" min="0" max="100" />
8
Giá trị tối đa để chấp nhận cho đầu vào này. Nếu
<labelfor="ticketNum">Number of tickets you would like to buy:</label><inputid="ticketNum"type="number"name="ticketNum"value="0"/>
7 nhập vào phần tử vượt quá điều này, phần tử sẽ không xác thực ràng buộc. Nếu giá trị của thuộc tính
<inputtype="number"placeholder="multiple of 10"step="10"/>
1 không phải là một số, thì phần tử không có giá trị tối đa.
Giá trị này phải lớn hơn hoặc bằng giá trị của thuộc tính
<inputtype="number"placeholder="multiple of 10"step="10"/>
4.
Giá trị tối thiểu để chấp nhận cho đầu vào này. Nếu
<labelfor="ticketNum">Number of tickets you would like to buy:</label><inputid="ticketNum"type="number"name="ticketNum"value="0"/>
7 của phần tử nhỏ hơn thế này, phần tử sẽ không xác thực ràng buộc. Nếu một giá trị được chỉ định cho
<inputtype="number"placeholder="multiple of 10"step="10"/>
4 không phải là số hợp lệ, đầu vào không có giá trị tối thiểu. When the data entered by the user doesn't adhere to the stepping configuration, the user agent may round to the nearest valid value, preferring numbers in the positive direction when there are two equally close options.
Giá trị này phải nhỏ hơn hoặc bằng giá trị của thuộc tính
<inputtype="number"placeholder="multiple of 10"step="10"/>
1.
Thuộc tính <label for="ticketNum">Number of tickets you would like to buy:</label>
<input id="ticketNum" type="number" name="ticketNum" value="0" />
4 là một chuỗi cung cấp một gợi ý ngắn gọn cho người dùng về loại thông tin được mong đợi trong trường. Nó phải là một từ hoặc cụm từ ngắn thể hiện loại dữ liệu dự kiến, thay vì một thông điệp giải thích. Văn bản không được bao gồm trả lại vận chuyển hoặc nguồn cấp dữ liệu.
Nếu nội dung của điều khiển có một hướng (LTR hoặc RTL) nhưng cần trình bày trình giữ chỗ theo hướng ngược lại, bạn có thể sử dụng các ký tự định dạng thuật toán nhị phân Unicode để ghi đè tính định hướng trong trình giữ chỗ; Xem cách sử dụng các điều khiển Unicode cho văn bản BIDI để biết thêm thông tin.
3 Các yếu tố có thể giúp đơn giản hóa công việc của bạn khi xây dựng giao diện người dùng và logic để nhập các số vào một biểu mẫu. Khi bạn tạo một số đầu vào với giá trị
<inputtype="number"placeholder="multiple of 10"step="10"/>
5, bạn sẽ nhận được xác thực tự động rằng văn bản đã nhập là một số và thường là một tập hợp các nút lên xuống để bước lên và xuống giá trị.
CẢNH BÁO: Về mặt logic, bạn không thể nhập các ký tự bên trong một số nhập khác với các số. Một số trình duyệt cho phép các ký tự không hợp lệ, những người khác thì không; Xem Bug & NBSP; 1398528. Logically, you should not be able to enter characters inside a number input other than numbers. Some browsers allow invalid characters, others do not; see bug 1398528.
Lưu ý: Người dùng có thể sửa đổi HTML của bạn ở hậu trường, vì vậy trang web của bạn không được sử dụng xác thực phía máy khách đơn giản cho bất kỳ mục đích bảo mật nào. Bạn phải xác minh ở phía máy chủ bất kỳ giao dịch nào trong đó giá trị được cung cấp có thể có ý nghĩa bảo mật của bất kỳ loại nào. A user can tinker with your HTML behind the scenes, so your site
must not use simple client-side validation for any security purposes. You must verify on the server side any transaction in which the provided value may have security implications of any kind.
Trình duyệt di động giúp đỡ thêm với trải nghiệm người dùng bằng cách hiển thị bàn phím đặc biệt phù hợp hơn để nhập các số khi người dùng cố gắng nhập giá trị.
Một số đầu vào đơn giản
Ở dạng cơ bản nhất, một đầu vào có thể được thực hiện như thế này:
<labelfor="ticketNum">Number of tickets you would like to buy:</label><inputid="ticketNum"type="number"name="ticketNum"value="0"/>
Một đầu vào số được coi là hợp lệ khi trống và khi một số được nhập, nhưng nếu không thì không hợp lệ. Nếu thuộc tính
<inputtype="number"placeholder="multiple of 10"step="10"min="0"max="100"/>
6 được sử dụng, đầu vào không còn được coi là hợp lệ khi trống.
Người giữ chỗ
Đôi khi, thật hữu ích khi cung cấp một gợi ý trong bối cảnh về những gì hình thành dữ liệu đầu vào nên lấy. Điều này có thể đặc biệt quan trọng nếu thiết kế trang không cung cấp nhãn mô tả cho mỗi
0. Khi dữ liệu được nhập vào hộp, người giữ chỗ sẽ biến mất; Nếu hộp được làm trống, người giữ chỗ sẽ xuất hiện trở lại.placeholders come in. A placeholder is a value most commonly used to provide a hint as to the format the input should take
<labelfor="ticketNum">Number of tickets you would like to buy:</label><inputid="ticketNum"type="number"name="ticketNum"value="0"/>
7. It is displayed inside the edit box when the element's
<labelfor="ticketNum">Number of tickets you would like to buy:</label><inputid="ticketNum"type="number"name="ticketNum"value="0"/>
2". Lưu ý cách người giữ chỗ biến mất và xuất hiện lại khi bạn thao tác nội dung của trường chỉnh sửa.
<inputtype="number"placeholder="Multiple of 10"/>
Kiểm soát kích thước bước
Theo mặc định, các nút lên và xuống được cung cấp cho bạn để bước số lên và xuống sẽ tăng giá trị lên và xuống 1. Bạn có thể thay đổi điều này bằng cách cung cấp thuộc tính
<inputtype="number"placeholder="multiple of 10"step="10"min="0"max="100"/>
8, lấy giá trị của nó một số chỉ định số lượng bước. Ví dụ trên của chúng tôi chứa một trình giữ chỗ nói rằng giá trị phải là bội số của 10, do đó, việc thêm giá trị
<inputtype="number"placeholder="multiple of 10"step="10"min="0"max="100"/>
<inputtype="number"placeholder="multiple of 10"step="10"/>
Trong ví dụ này, bạn nên thấy rằng các mũi tên bước lên và xuống sẽ tăng và giảm giá trị xuống 10 mỗi lần, chứ không phải 1. Bạn vẫn có thể nhập thủ công một số không phải là bội số của 10, nhưng nó sẽ được coi là không hợp lệ.
Chỉ định các giá trị tối thiểu và tối đa
Bạn có thể sử dụng các thuộc tính
<inputtype="number"placeholder="multiple of 10"step="10"/>
4 và
<inputtype="number"placeholder="multiple of 10"step="10"/>
1 để chỉ định giá trị tối thiểu và tối đa mà trường có thể có. Ví dụ: hãy đưa ra ví dụ của chúng tôi tối thiểu là
<inputtype="number"placeholder="multiple of 10"step="10"min="0"max="100"/>
Trong phiên bản cập nhật này, bạn nên thấy rằng các nút bước lên và xuống sẽ không cho phép bạn đi dưới 0 hoặc trên 100. Bạn vẫn có thể nhập thủ công một số bên ngoài các giới hạn này, nhưng nó sẽ được coi là không hợp lệ.
Cho phép các giá trị thập phân
Một vấn đề với đầu vào số là kích thước bước của chúng là 1 theo mặc định. Nếu bạn cố gắng nhập một số với số thập phân (chẳng hạn như "1.0"), nó sẽ được coi là không hợp lệ. Nếu bạn muốn nhập một giá trị yêu cầu số thập phân, bạn sẽ cần phải phản ánh điều này trong giá trị
<inputtype="number"placeholder="multiple of 10"step="10"min="0"max="100"/>
8 (ví dụ:
<form><div><labelfor="balloons">Number of balloons to order (multiples of 10):</label><inputid="balloons"type="number"name="balloons"step="10"min="0"max="100"required/><spanclass="validity"></span></div><div><inputtype="submit"/></div></form>
1 để cho phép số thập phân đến hai vị trí thập phân). Đây là một ví dụ đơn giản:
<form><div><labelfor="balloons">Number of balloons to order (multiples of 10):</label><inputid="balloons"type="number"name="balloons"step="10"min="0"max="100"required/><spanclass="validity"></span></div><div><inputtype="submit"/></div></form>
2 và
<form><div><labelfor="balloons">Number of balloons to order (multiples of 10):</label><inputid="balloons"type="number"name="balloons"step="10"min="0"max="100"required/><spanclass="validity"></span></div><div><inputtype="submit"/></div></form>
3, với số thập phân đến hai nơi. Ví dụ: "9.52" là hợp lệ, nhưng "9.521" thì không.
5 không hỗ trợ các thuộc tính kích thước biểu mẫu như
<form><div><labelfor="balloons">Number of balloons to order (multiples of 10):</label><inputid="balloons"type="number"name="balloons"step="10"min="0"max="100"required/><spanclass="validity"></span></div><div><inputtype="submit"/></div></form>
6. Bạn sẽ phải dùng đến CSS để thay đổi kích thước của các điều khiển này.
Ví dụ, để điều chỉnh chiều rộng của đầu vào chỉ rộng khi cần nhập số ba chữ số, chúng tôi có thể thay đổi HTML của mình để bao gồm
<inputtype="number"placeholder="Multiple of 10"/>
7 và để rút ngắn chỗ giữ chỗ của chúng tôi vì trường sẽ quá hẹp cho văn bản Chúng tôi đã sử dụng cho đến nay:
Sau đó, chúng tôi thêm một số CSS để thu hẹp chiều rộng của phần tử với bộ chọn
<inputtype="number"placeholder="Multiple of 10"/>
7
<form><div><labelfor="balloons">Number of balloons to order (multiples of 10):</label><inputid="balloons"type="number"name="balloons"step="10"min="0"max="100"required/><spanclass="validity"></span></div><div><inputtype="submit"/></div></form>
9:
Kết quả trông như thế này:
Cung cấp các giá trị đề xuất
Bạn có thể cung cấp một danh sách các tùy chọn mặc định mà người dùng có thể chọn bằng cách chỉ định thuộc tính
<labelfor="ticketNum">Number of tickets you would like to buy:</label><inputid="ticketNum"type="number"name="ticketNum"value="0"/>
3 Các yếu tố tự động vô hiệu hóa bất kỳ mục nào không phải là số (hoặc trống, trừ khi
<inputtype="number"placeholder="multiple of 10"step="10"min="0"max="100"/>
6 được chỉ định).
Bạn có thể sử dụng thuộc tính
<inputtype="number"placeholder="multiple of 10"step="10"min="0"max="100"/>
6 để làm cho một mục trống không hợp lệ. (Nói cách khác, đầu vào phải được điền vào.)
Bạn có thể sử dụng thuộc tính
<inputtype="number"placeholder="multiple of 10"step="10"min="0"max="100"/>
8 để ràng buộc các giá trị hợp lệ vào một tập hợp nhất định (ví dụ: bội số của 10).
Bạn có thể sử dụng các thuộc tính
<inputtype="number"placeholder="multiple of 10"step="10"/>
4 và
<inputtype="number"placeholder="multiple of 10"step="10"/>
1 để hạn chế các giá trị hợp lệ với giới hạn dưới và trên.
Ví dụ sau đây thể hiện tất cả các tính năng trên, cũng như sử dụng một số CSS để hiển thị các biểu tượng hợp lệ và không hợp lệ, tùy thuộc vào giá trị của ____ 21:
<form><div><labelfor="balloons">Number of balloons to order (multiples of 10):</label><inputid="balloons"type="number"name="balloons"step="10"min="0"max="100"required/><spanclass="validity"></span></div><div><inputtype="submit"/></div></form>
Hãy thử gửi biểu mẫu với các giá trị không hợp lệ khác nhau được nhập - ví dụ: không có giá trị; giá trị dưới 0 hoặc trên 100; một giá trị không phải là bội số của 10; hoặc một giá trị phi hình số-và xem cách các thông báo lỗi mà trình duyệt cung cấp cho bạn khác nhau với các thông báo khác nhau.
16 riêng để tăng tính linh hoạt. Một số trình duyệt không hiển thị nội dung được tạo rất hiệu quả trên một số loại đầu vào hình thức. (Đọc, ví dụ, phần về xác thực
Cảnh báo: Xác thực biểu mẫu HTML không phải là một thay thế cho các tập lệnh phía máy chủ đảm bảo rằng dữ liệu đã nhập ở định dạng thích hợp! HTML form validation is not a substitute for server-side scripts that ensure that the entered data is
in the proper format!
Thật dễ dàng để ai đó thực hiện các điều chỉnh cho HTML cho phép họ bỏ qua việc xác thực hoặc loại bỏ nó hoàn toàn. Ai đó cũng có thể bỏ qua HTML của bạn và gửi dữ liệu trực tiếp đến máy chủ của bạn.
Nếu mã phía máy chủ của bạn không xác thực dữ liệu mà nó nhận được, thảm họa có thể tấn công khi dữ liệu được định dạng không đúng cách được gửi (hoặc dữ liệu quá lớn, là loại sai, v.v.).
20 để làm cho các giá trị đã nhập phù hợp với một mẫu Regex cụ thể.
Lý do cho điều này là các đầu vào số sẽ không hợp lệ nếu chúng chứa bất cứ thứ gì ngoại trừ các số và bạn có thể hạn chế số chữ số hợp lệ tối thiểu và tối đa bằng cách sử dụng các thuộc tính
<inputtype="number"placeholder="multiple of 10"step="10"/>
4 và
<inputtype="number"placeholder="multiple of 10"step="10"/>
1 (như được giải thích ở trên).
Ví dụ
Chúng tôi đã đề cập đến thực tế là theo mặc định, mức tăng là
<inputtype="number"placeholder="multiple of 10"step="10"min="0"max="100"/>
8 để cho phép đầu vào thập phân. Hãy xem xét kỹ hơn.
Trong ví dụ sau là một hình thức để nhập chiều cao của người dùng. Nó mặc định chấp nhận chiều cao tính bằng mét, nhưng bạn có thể nhấp vào nút liên quan để thay đổi biểu mẫu để chấp nhận chân và inch thay thế. Đầu vào cho chiều cao tính bằng mét chấp nhận số thập phân đến hai nơi.
Bạn sẽ thấy rằng chúng tôi đang sử dụng nhiều thuộc tính mà chúng tôi đã xem trong bài viết trước đó. Vì chúng tôi muốn chấp nhận giá trị đồng hồ tính theo centimet, chúng tôi đã đặt giá trị
<inputtype="number"placeholder="multiple of 10"step="10"min="0"max="100"/>
30 và cập nhật các giá trị hiển thị của hai bộ đầu vào khi nhấn nút.
(Lưu ý rằng chúng tôi không chuyển đổi qua lại giữa mét và feet/inch ở đây, mà một ứng dụng web ngoài đời thực có thể sẽ làm.)
Lưu ý: Khi người dùng nhấp vào nút, (các) thuộc tính
<inputtype="number"placeholder="multiple of 10"step="10"min="0"max="100"/>
6 sẽ bị xóa khỏi (các) đầu vào, chúng tôi đang ẩn và làm trống (các) thuộc tính
<labelfor="ticketNum">Number of tickets you would like to buy:</label><inputid="ticketNum"type="number"name="ticketNum"value="0"/>
7. Điều này là do đó biểu mẫu có thể được gửi nếu cả hai bộ đầu vào không được điền vào. Nó cũng đảm bảo rằng biểu mẫu sẽ không gửi dữ liệu mà người dùng không có ý. When the user clicks the button, the
<inputtype="number"placeholder="multiple of 10"step="10"min="0"max="100"/>
6 attribute(s) are removed
from the input(s) we are hiding, and empty the
<labelfor="ticketNum">Number of tickets you would like to buy:</label><inputid="ticketNum"type="number"name="ticketNum"value="0"/>
7 attribute(s). This is so the form can be submitted if both input sets aren't filled in. It also ensures that the form won't submit data that the user didn't mean to.
Nếu bạn không làm điều này, bạn sẽ phải điền vào cả hai feet/inch và mét để gửi biểu mẫu!and meters to submit the form!
3, có nguy cơ người dùng vô tình tăng số khi họ đang cố gắng làm việc khác. Ngoài ra, nếu người dùng cố gắng nhập thứ gì đó không phải là số, không có phản hồi rõ ràng về những gì họ đang làm sai.
Đồng thời xem xét sử dụng thuộc tính
<labelfor="ticketNum">Number of tickets you would like to buy:</label><inputid="ticketNum"type="number"name="ticketNum"value="0"/>
2 để giúp người dùng hoàn thành các biểu mẫu nhanh hơn và với ít cơ hội lỗi hơn.Ví dụ: để bật tự động vào trường mã zip, đặt