javascript - javascript限制输入到文本框: 只允许数字和小数点

  显示原文与译文双语对照的内容

如何限制输入到文本框,以便只接受数字和小数点?

时间: 原作者:


<HTML>


 <HEAD>


 <SCRIPT language=Javascript>


 <!--


 function isNumberKey(evt)


 {


 var charCode = (evt.which)? evt.which : evt.keyCode;


 if (charCode!= 46 && charCode> 31 


 && (charCode <48 || charCode> 57))


 return false;



 return true;


 }


//-->


 </SCRIPT>


 </HEAD>


 <BODY>


 <INPUT id="txtChar" onkeypress="return isNumberKey(event)" 


 type="text" name="txtChar">


 </BODY>


</HTML>

这真的有用 !


form.onsubmit = function(){


 return textarea.value.match(/^d+(.d+)?$/);


}



你 是 在 找 它 吗?

希望有帮助。

编辑:我编辑了示例 上面,所以只能有一个句点,前面有一个数字,后面跟至少一个数字。

接受的解决方案不完整,因为你可以输入多个'。',例如 24.。22.22. 通过一些小修改,它将按预期工作:


<HTML><HEAD>


<script type="text/javascript">



 function isNumberKey(txt, evt) {



 var charCode = (evt.which)? evt.which : evt.keyCode;


 if (charCode == 46) {


//Check if the text already contains the. character


 if (txt.value.indexOf('.') === -1) {


 return true;


 } else {


 return false;


 }


 } else {


 if (charCode> 31


 && (charCode <48 || charCode> 57))


 return false;


 }


 return true;


}



</SCRIPT></HEAD><BODY>


<input type="text" onkeypress="return isNumberKey(this, event);"/> </BODY></HTML>



原作者:

这里还有一个解决方案,它允许小数数并且将小数位数限制为 2小数位数。


function isNumberKey(evt, element) {


 var charCode = (evt.which)? evt.which : event.keyCode


 if (charCode> 31 && (charCode <48 || charCode> 57) &&!(charCode == 46 || charcode == 8))


 return false;


 else {


 var len = $(element).val().length;


 var index = $(element).val().indexOf('.');


 if (index> 0 && charCode == 46) {


 return false;


 }


 if (index> 0) {


 var CharAfterdot = (len + 1) - index;


 if (CharAfterdot> 3) {


 return false;


 }


 }



 }


 return true;


}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


<input type="number" id="rate" placeholder="Billing Rate" required onkeypress="return isNumberKey(event,this)">
原作者:
...