用 Javascript 实现只能输入数字的文本框

作者: CodeBit     来源: CodeBit.cn     时间: 2007-07-02 08:22:17
摘要: 在制作表单(Form)的时候,我们通常会给表单元素添加一些输入规则,比如邮件地址、数字等,我们会在特定的时候执行验证,如果验证不通过,会给出一定的提示信息,本文介绍的是用 Javascript 实现只能输入数字的文本框。
归类: (X)HTML/CSS, Javascript,

关键词: 表单, 正则表达式, 验证, 数字, 文本框, javascript, form,


在制作表单(Form)的时候,我们通常会给表单元素添加一些输入规则,比如邮件地址、数字等,我们会在特定的时候执行验证,如果验证不通过,会给出一定的提示信息,本文介绍的是用 Javascript 实现只能输入数字的文本框:


--------------------------------------------------------------
点此浏览示例文件
--------------------------------------------------------------


执行验证可以有以下几种方式:
1. 在输入的时候验证,这种验证有一定的特殊性,比如只能输入数字或者只能输入英文字符这样的规则才能应用,如果是 email 验证就不行。

2. 在输入完成时验证,即在 onblur 事件发生时验证。这个适用范围很广,基本上验证都可以使用。

3. 在提交表单时执行验证,即表单的 onsubmit 事件中执行验证。可以一次验证所有元素,适用范围最广。

三种方式第一种实时性最高,输入的时候就验证,第二种次之,在输入完成后验证,第三中最慢,必须在提交时验证,不过每种都有自己的好处和局限性,在应用中可以根据实际情况选用。


本文验证方式是只能输入数字,带有一定的特殊性,可以选用第一种:

Javascript:
  1.  
  2. <script type="text/javascript">
  3.  
  4. // 说明 : 用 Javascript 实现只能输入数字的文本框
  5. // 整理 : CodeBit.cn ( http://www.CodeBit.cn )
  6.  
  7. function checkNumber(e)
  8. {
  9. var key = window.event ? e.keyCode : e.which;
  10. var keychar = String.fromCharCode(key);
  11. var el = document.getElementById('test');
  12. var msg = document.getElementById('msg');
  13. reg = /\d/;
  14. var result = reg.test(keychar);
  15. if(!result)
  16. {
  17. el.className = "warn";
  18. msg.innerHTML = "只能输入数字";
  19. return false;
  20. }
  21. else
  22. {
  23. el.className = "";
  24. msg.innerHTML = "";
  25. return true;
  26. }
  27. }
  28.  
  29. </script>
  30.  



HTML:
  1.  
  2. <div id="test">
  3. 请输入数字:<input type="text" onkeypress="return checkNumber(event);" />
  4. <span id="msg"></span>
  5. </div>
  6.  



当我们在此元素中输入时,检测用户按键,如果不是数字键,就显示提示信息,实时性较强,当然,我们也可以采用另外两种方式。


推荐链接:(联系 QQ :326801485)