HTML 5
คุณสามารถใช้หมายเลขประเภทอินพุต HTML5เพื่อ จำกัด การป้อนเฉพาะตัวเลข:
<input type="number" name="someid" />
สิ่งนี้จะทำงานในเบราว์เซอร์การร้องเรียน HTML5 เท่านั้น ตรวจสอบให้แน่ใจว่าเอกสารประเภท html ของคุณคือ:
<!DOCTYPE html>
ดูเพิ่มเติมที่https://github.com/jonstipe/number-polyfillสำหรับการสนับสนุนที่โปร่งใสในเบราว์เซอร์รุ่นเก่า
JavaScript
อัปเดต:มีโซลูชันใหม่และง่ายมากสำหรับสิ่งนี้:
อนุญาตให้คุณใช้ตัวกรองอินพุตชนิดใดก็ได้บนข้อความ<input>
รวมถึงตัวกรองตัวเลขต่างๆ สิ่งนี้จะจัดการคัดลอก + วางลาก + วางแป้นพิมพ์ลัดการใช้งานเมนูบริบทปุ่มที่ไม่สามารถพิมพ์ได้และเค้าโครงแป้นพิมพ์ทั้งหมดอย่างถูกต้อง
ดูคำตอบนี้หรือลองด้วยตัวคุณเองใน JSFiddle
เพื่อวัตถุประสงค์ทั่วไปคุณสามารถตรวจสอบ JS ได้ดังต่อไปนี้:
function isNumberKey(evt){
var charCode = (evt.which) ? evt.which : evt.keyCode
if (charCode > 31 && (charCode < 48 || charCode > 57))
return false;
return true;
}
<input name="someid" type="number" onkeypress="return isNumberKey(event)"/>
หากคุณต้องการอนุญาตให้ใช้ทศนิยมแทนที่ "if condition" ด้วยสิ่งนี้:
if (charCode > 31 && (charCode != 46 &&(charCode < 48 || charCode > 57)))
ที่มา: การป้อนข้อความ HTML อนุญาตเฉพาะการป้อนตัวเลขเท่านั้น
การสาธิต JSFiddle: http://jsfiddle.net/viralpatel/nSjy7/