当前位置:嗨网首页>书籍在线阅读

40-讨论

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

10.9.3 讨论

keydown 事件是即时发生的,阻止用户在字段中输入非数字字符。也可以用与 blur 事件共享相同处理器的 keyup 事件来代替。但是,用户将会看到非数字字符出现,然后很快消失。我更喜欢从一开始就阻止输入这些字符,避免闪烁。

blur 事件可以阻止复制和粘贴的非数字字符进入文本字段。在前一个场景中,假定用户试图测试JavaScript的限制(我也会这么做)或者试图从一个电子表格中复制和粘贴数据。在我看来,两者都不需要立刻进行更正。但是,如果你的情况要求更及时地更正,请参阅秘诀10.8的“讨论”部分中有关捕捉粘贴事件中更改的信息。

如果你的情况不同,希望用户从电子表格中复制和粘贴数据,一定要注意:我所使用的正则表达式没有考虑小数点。所以,数字“1,000”会清理为“1000”而数字“10.00”也会清理为“1000”。

你将会注意到, validKeyCodes 变量是一个以逗号开始和结束的变量。在秘诀10.7已经提到,这样做是因为我害怕出错——当搜索两边加上逗号的 keyCode 时,保证你只会找到所要找的数字。

当禁用JavaScript时会发生什么情况?用户可以输入他们喜欢的任何字符。一定要在服务器端验证代码。不要依靠JavaScript提供干净的数据。