使用javascript实时滑动输入类型值

时间:2014-06-10 12:34:09

标签: javascript

我正在尝试实时编辑文本框值,以便每两个字符分割一次结果, 添加一列并从一些默认字符开始。

我现在所拥有的是这段代码,显然不起作用:

 $('#textboxtext').keyup(function (){
            var text = $("#textboxtext").val();
            //$(text).attr('maxlength', '12');
            var splitted = text.match(/.{2}|.{1,2}/g);
            var result = ("B8:27:EB:" + splitted.join(':'));
        });

我需要实时拆分和文本框内的默认字符,但我真的不知道从哪里开始......

1 个答案:

答案 0 :(得分:0)

从您的代码中,您似乎正在尝试创建一个具有某些特定行为的文本框。看起来它需要以这样的方式格式化它的价值,即它始终以某些前缀'开头。 B8:27:EB:的{​​{1}},每个后续字符对由:分隔。这实际上是一种非常复杂的行为,您必须考虑许多不同的交互(例如,当用户尝试删除或修改前缀时会发生什么)。如果可能的话,我通常会尝试避免这种复杂的控制,但这是一个快速实现:

$('#textboxtext').keyup(function (e){
     var prefix = "B8:27:EB:", 
         text = $(this).val(),
         splitted, result;
     if (text.indexOf(prefix) == 0)
         text = text.substr(9);
     else if (prefix.indexOf(text) == 0)
         text = "";

     text = text.replace(/:/g, '');
     splitted = text.match(/.{1,2}/g) || [];
     result = prefix + splitted.join(':');

     $(this).val(result);
 });

Demonstration

在文本框内输入,看看会发生什么。另请注意,此实现不会考虑所有类型的交互(例如右键单击并粘贴到文本框中),但这只是一个开始。