一个文本框,实现输入mac地址,复杂的是要求页面载入的时候,文本框里已经有“ - - - - - ”这样的格式了,用户只需要输入数字和英文字母,输入的内容自己在文本框里输入到相应位置了。就和咱们机器TCP/IP设置里,填写ip地址差不多,但是要求用一个文本框实现。不知道各位,这样的功能能实现不?如果不能,那怎样才能实现mac地址的智能输入?
我的想法是用5个文本框来实现。
我的想法是用5个文本框来实现。
解决方案 »
- 如何获取鼠标点击对象的ID值?
- IE下在file input上点击回车键,为何无法弹出对话框?
- [请教各位]js页面打印问题
- 再次发帖 http://topic.csdn.net/u/20090507/10/ae5e7cb5-8691-432d-ae8a-d99084079f8f.html
- <span>的内容是[OBJECT],不解
- checkbox级联问题
- 嘿嘿,今天好困呢,给大家出个小题缓解下疲劳。。
- 300分求一视图设计器,有合适的可以再开贴
- 怎么通过JS来获取客户端的网卡MAC
- 请问哪里有JS的较好书籍下载,请问新浪聊天室中的分屏功能如何实现的
- 一道外资公司的面试题
- ~ ~ ~ ~ 克隆对象很容易, 那么请问如何克隆函数呢? ~ ~ ~ ~ ~ ~
效果和严谨都不如用5个..
<script type="text/javascript">
function addEvent(elem, type, hdl){
if (elem.addEventListener) {
elem.addEventListener(type, hdl, false);
} else if (elem.attachEvent) {
elem.attachEvent("on" + type, hdl);
} else {
elem["on" + type] = hdl;
}
}
addEvent(document.getElementById('mac'), 'keydown', function(e){
e = e || window.event;
var target = e.srcElement || e.target, key = e.keyCode, ch = String.fromCharCode(key);
if ((key > 47 && key < 58) || (key > 64 && key < 71)) {
var mac = target.value.split(/\s*-\s*/);
for (var i = 0; i < mac.length; i++) {
mac[i] = mac[i].replace(/\s+/, '');
if (mac[i].length == 0) mac[i] += ch, ch = ' ';
if (mac[i].length == 1) mac[i] += ch, ch = ' ';
}
target.value = mac.join('-');
}
if (e.preventDefault) e.preventDefault();
else e.returnValue = false;
});
</script>