ฉันจะรับค่า"จริง"ของ<input type="number">
ฟิลด์ได้อย่างไร
ฉันมีinput
กล่องและฉันใช้ประเภทอินพุต HTML5 ที่ใหม่กว่าnumber
:
<input id="edQuantity" type="number">
ส่วนใหญ่รองรับใน Chrome 29:
สิ่งที่ฉันต้องการตอนนี้คือความสามารถในการอ่านค่า"ดิบ"ที่ผู้ใช้ป้อนในช่องป้อนข้อมูล หากผู้ใช้ป้อนตัวเลข:
แล้วedQuantity.value = 4
และทุกอย่างก็เรียบร้อยดี
แต่ถ้าผู้ใช้ป้อนข้อความที่ไม่ถูกต้องฉันต้องการให้ช่องป้อนข้อมูลเป็นสีแดง:
น่าเสียดายสำหรับtype="number"
ช่องป้อนข้อมูลหากค่าในกล่องข้อความไม่ใช่ตัวเลขvalue
จะส่งคืนสตริงว่าง:
edQuantity.value = "" (String);
(ใน Chrome 29 เป็นอย่างน้อย)
ฉันจะรับค่า"ดิบ"ของ<input type="number">
คอนโทรลได้อย่างไร
ฉันพยายามค้นหารายการคุณสมบัติอื่น ๆ ของช่องป้อนข้อมูลของ Chrome:
ฉันไม่เห็นสิ่งใดที่คล้ายกับอินพุตจริง
ฉันไม่สามารถหาวิธีที่จะบอกได้ว่ากล่องนั้น "ว่าง"หรือไม่ บางทีฉันอาจจะสรุปได้:
value isEmpty Conclusion
============= ============= ================
"4" false valid number
"" true empty box; not a problem
"" false invalid text; color it red
หมายเหตุ : คุณสามารถละเว้นทุกสิ่งหลังจากกฎแนวนอน เป็นเพียงฟิลเลอร์เพื่อปรับคำถาม นอกจากนี้: อย่าสับสนตัวอย่างกับคำถาม ผู้คนอาจต้องการคำตอบสำหรับคำถามนี้ด้วยเหตุผลอื่นนอกเหนือจากการระบายสีกล่องสีแดง (ตัวอย่างหนึ่ง: การแปลงข้อความ"four"
เป็น"4"
สัญลักษณ์ละตินระหว่างเหตุการณ์ onBlur)
ฉันจะรับค่า"ดิบ"ของ<input type="number">
คอนโทรลได้อย่างไร
การอ่านโบนัส
validity
สถานะของฟิลด์- ฉันคาดหวังtypeMismatch
แต่ฉันไม่ได้ตรวจสอบตัวเอง
blah
เป็นหมายเลขที่ไม่ถูกต้อง"
number
ไม่ใช่ประเภทอินพุตที่คุณต้องการ ใช้text
อินพุตปกติ