特殊的点屏蔽输入 HTML-JavaScript
Special dot masked input HTML-JavaScript
我正在尝试使用来自Igor Escobar的jQuery和themask插件在HTML中实现特殊的屏蔽输入(http://igorescobar.github.io/jQuery-Mask-Plugin/)
我只需要写数字[0-9]和以下转换:
输入:
123456789
12345678
1234567
123456
边形输出:
123.456.789
12.345.678
1.234.567
123.456
可以使用该插件实现这一点吗?还是存在另一种方式?感谢您阅读:)
编辑:
我使用另一个插件(数字.js):http://numeraljs.com/
这是我的工作代码:
$("#myinput").blur(function()
{
this.value=numeral(this.value).format('0,0[.]00').replace(/',/g, '.');
});
但是我不喜欢在最后被验证,即(onblur),有什么办法可以即时做到这一点吗? - 即逐步验证(按键)。
您可能不需要库。我保留了jQuery,但它确实用于选择输入,因此您绝对可以轻松放弃它。
$("#myinput").keyup(function(){
// prevent every character except numbers
if(!this.value.slice(-1).match(/^[0-9]+'.?[0-9]*$/) ){
this.value = this.value.slice(0, -1);
return;
}
// remove the dots, split the string and reverse it
var a = this.value.replace(/'./g, '').split('').reverse();
// start from 3 and as long as there's a number
// add a dot every three digits.
var pos = 3;
while(a[pos] !== undefined){
a.splice(pos,0,'.');
pos = pos + 4;
}
// reverse, join and reassign the value
this.value = a.reverse().join('');
});
您可以自己尝试 这里 看看它是否可以完成这项工作。希望对您有所帮助。
编辑:虽然上面的代码可以工作,但它有一些缺点,例如:
- 复制/粘贴时不起作用
- 它不允许使用箭头键移动
- 光标始终转到输入的末尾,即使您在中间插入数字也是如此。
由于我需要它并完全支持这些情况,所以我在一个小脚本中发展了它,你可以在 Github 上找到它以及演示和测试规范。
$("#myinput").on('keyup keydown blur', function() {
this.value=numeral(this.value).format('0,0[.]00').replace(/',/g, '.');
}
相关文章:
- Angularjs$编译输入html或元素
- 将输入 html 元素动态关联到颜色选取器
- 如何使用 JavaScript 显示 html 输入:.html(' < input type=“text” /
- 在输入 HTML 表单上从 Java 脚本传递参数
- 如何根据用户输入 HTML 更新多个 SPAN 元素
- 如何计算输入 HTML 元素的宽度,使其与其内容的大小相匹配
- 如何在输入 html 中编写一个 js var 值
- Javascript:如何获取所选复选框的所有值,推送到数组,然后放入输入HTML元素
- 如何使用Javascript自动输入html中行的序列号
- 特殊的点屏蔽输入 HTML-JavaScript
- 在select选项和input.text之间切换输入html
- 隐藏输入(html表单确认)-服务器端脚本?(php)
- 验证用户输入HTML子集
- 在KeyUp上输入HTML/JavaScript密码,用于浏览器自动填充
- 按钮内文本输入- HTML
- 在ie10,9中选择选项(html 5标签)在下一个输入(html 5标签)的位置
- 有麻烦输入html列表选项从xml文件
- 在非输入html标签上使用ng-keyup
- 在表数据中输入Html文本
- 中心文件输入- Html/Css