2016-03-23 15 views
6

Tôi tiếp tục gặp lỗi xác thực không mong muốn lạ với trường số HTML5 của mình. Đây là mã HTML của tôi:Tại sao tôi không thể nhập 500 vào trường số HTML5?

<input type="number" name="width" maxlength="5" placeholder="Width" value="733.95591182365" />&nbsp;Width<br /> 

Khi tôi nhập 500 và gửi biểu mẫu, tôi nhận được lỗi: "Vui lòng nhập một giá trị hợp lệ Hai giá trị hợp lệ gần nhất là 499,95591182365 và 500,95591182365."

Tôi đã giải quyết được sự cố. Vấn đề là value="733.95591182365". Tôi đã thay đổi mã PHP của tôi để làm tròn số thập phân thành số nguyên sao cho chỉ các số nguyên có thể được lặp lại vào trường số. Bây giờ tôi chỉ nhận được lỗi khi số thập phân được nhập vào, đó là OK.

+2

'maxlength' không áp dụng cho đầu vào số. – Oriol

Trả lời

7

Bạn cần có step="any" như một thuộc tính khi làm việc với type="number"

<form> 
    <input step="any" type="number" name="width" maxlength="5" placeholder="Width" value="733.95591182365" /> 
</form> 
+0

Tôi đã đánh dấu câu trả lời của bạn là chính xác vì điều đó cũng sẽ hiệu quả, nhưng tôi đã giải quyết được vấn đề bằng cách làm tròn chiều rộng thành số nguyên trước khi lặp lại nó. –

+0

Bước đó = "bất kỳ" nào thực sự đã được mặc định cho loại = "số". Cảm ơn! – Jack0fshad0ws

6

Đối number inputs,

The step scale factor is 1. The default step is 1

Sau đó, vì không có step thuộc tính, các allowed value step1×1 = 1:

  1. If the attribute is absent, then the allowed value step is the default step multiplied by the step scale factor .

step base sẽ 733.95591182365:

  1. If the element has a value content attribute, and the result of applying the algorithm to convert a string to a number to the value of the value content attribute is not an error, then return that result and abort these steps.

Do đó,

Constraint validation: When the element has an allowed value step , and the result of applying the algorithm to convert a string to a number to the string given by the element's value is a number, and that number subtracted from the step base is not an integral multiple of the allowed value step , the element is suffering from a step mismatch .

Kể từ 733.95591182365 - 500 = 233.95591182365 không phải là một bội số của 1, hạn chế được vi phạm.

Nếu bạn muốn một bước khác, hãy chỉ định thuộc tính step. Nếu bạn không muốn bất kỳ bước nào, hãy sử dụng step = "any".

Các vấn đề liên quan