Làm cách nào để lấy giá trị "thực" của một <input type="number">
trường?
Tôi có một input
hộp và tôi đang sử dụng kiểu nhập HTML5 mới hơn number
:
<input id="edQuantity" type="number">
Điều này hầu hết được hỗ trợ trong Chrome 29:
Điều tôi cần bây giờ là khả năng đọc giá trị "thô" mà người dùng đã nhập vào hộp nhập liệu. Nếu người dùng đã nhập một số:
sau đó edQuantity.value = 4
, và tất cả đều tốt.
Nhưng nếu người dùng nhập văn bản không hợp lệ, tôi muốn tô màu hộp nhập liệu màu đỏ:
Thật không may, đối với type="number"
hộp nhập liệu, nếu giá trị trong hộp văn bản không phải là số thì value
sẽ trả về một chuỗi trống:
edQuantity.value = "" (String);
(ít nhất trong Chrome 29)
Làm cách nào tôi có thể lấy giá trị "thô" của một <input type="number">
điều khiển?
tôi đã thử xem qua danh sách các thuộc tính khác của hộp nhập liệu của Chrome:
tôi không thấy bất cứ điều gì giống với đầu vào thực tế.
Tôi cũng không thể tìm cách để biết hộp "trống" hay không. Có lẽ tôi đã có thể suy ra:
value isEmpty Conclusion
============= ============= ================
"4" false valid number
"" true empty box; not a problem
"" false invalid text; color it red
Lưu ý : Bạn có thể bỏ qua mọi thứ sau quy tắc ngang; nó chỉ là phụ để biện minh cho câu hỏi. Ngoài ra: đừng nhầm lẫn ví dụ với câu hỏi. Mọi người có thể muốn câu trả lời cho câu hỏi này vì những lý do khác ngoài việc tô màu hộp màu đỏ (Một ví dụ: chuyển đổi văn bản "four"
sang tiếng Latin"4"
biểu tượng trong sự kiện onBlur)
Làm cách nào tôi có thể lấy giá trị "thô" của một <input type="number">
điều khiển?
Đọc thêm
validity
trạng thái của trường - tôi mong đợi typeMismatch
nhưng tôi chưa tự kiểm tra.
blah
là một số không hợp lệ".
number
không phải là giá trị số, thì không phải là kiểu đầu vào bạn đang tìm kiếm; sử dụngtext
đầu vào bình thường .