本文使用「署名 4.0 国际 (CC BY 4.0)」许可协议,欢迎转载、或重新修改使用,但需要注明来源。 [署名 4.0 国际 (CC BY 4.0)](https://creativecommons.org/licenses/by/4.0/deed.zh) 本文作者: 苏洋 创建时间: 2012年08月07日 统计字数: 772字 阅读时间: 2分钟阅读 本文链接: https://soulteary.com/2012/08/07/%E5%8A%A8%E6%80%81%E9%99%90%E5%88%B6%E5%8F%AA%E8%83%BD%E8%BE%93%E5%85%A5%E5%B0%8F%E6%95%B0.html ----- # 动态限制只能输入小数 一个坑爹的需求,JavaScript 要求动态输出正确的浮点数。 思路也很简单,`bind` 事件到 `input` 或者 `on` 事件里。 给出 MooTools 的代码,jQuery 和 ES5 实现的类似。 大致思路如下。 ```js function convertFloot(idName) { var xx = $(idName).get('value'); var textValue = xx.length; if (textValue <= 1) { $(idName).set('value', xx.replace(/\D/, '')); } if (textValue > 1) { var textTemp = $(idName).get('value'); $(idName).set('value', textTemp.substring(0, 1) + textTemp.substring(1).replace(/[^0-9\.]/, '')); textTemp = $(idName).get('value'); $(idName).set('value', textTemp.replace(/[\.]{2,}/, '')); textTemp = $(idName).get('value'); if (textTemp.indexOf('.') != -1) { var partA = null; var partB = null; partA = textTemp.substring(0, textTemp.indexOf('.') + 1); partB = textTemp.substring(textTemp.indexOf('.') + 1); partB = partB.replace(/[\.]/g, ''); textTemp = partA + partB; $(idName).set('value', textTemp); } } } ```