一个文本框,实现输入mac地址,复杂的是要求页面载入的时候,文本框里已经有“  -  -  -  -  -  ”这样的格式了,用户只需要输入数字和英文字母,输入的内容自己在文本框里输入到相应位置了。就和咱们机器TCP/IP设置里,填写ip地址差不多,但是要求用一个文本框实现。不知道各位,这样的功能能实现不?如果不能,那怎样才能实现mac地址的智能输入?
我的想法是用5个文本框来实现。

解决方案 »

  1.   

    以前在java大阪貌似也讨论过这个,但是最后未果。关注了
      

  2.   

    通过css样式控制,可以达到那个效果,给人感觉上就一个text框,实际上还是用5个框来处理
      

  3.   

    用一个的话.要控制光标. 要控制 onkeydown   要处理鼠标的剪切粘贴什么的.
     效果和严谨都不如用5个..
      

  4.   

    一下是但文本框的<input type="text" id="mac" value="  -  -  -  -  -  " maxlength="17">
    <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>