javascript或jquery仅输入文本编号和自动屏蔽

javascript或jquery仅输入文本编号和自动屏蔽,javascript,jquery,ajax,input,numbers,Javascript,Jquery,Ajax,Input,Numbers,我使用javascript和jquery 我想做一个掩蔽模板 它只接受数字和每个数字键控结果的自动屏蔽格式。 屏蔽格式为:99-99-99-99-[重复格式直到最后一个输入的数字] 有效输入和结果示例: 输入:001234567890 结果:00-12-34-56-78-90- 输入:00[退格]1234567890 结果:01-23-45-67-89-0 输入:00[退格]1234567890 结果:01-23-45-67-89-0 我当前完整的html工作脚本存在问题: <h

我使用javascript和jquery

我想做一个掩蔽模板

只接受数字每个数字键控结果的自动屏蔽格式。

屏蔽格式为:99-99-99-99-[重复格式直到最后一个输入的数字]

有效输入和结果示例:

输入:001234567890
结果:00-12-34-56-78-90-

输入:00[退格]1234567890
结果:01-23-45-67-89-0

输入:00[退格]1234567890
结果:01-23-45-67-89-0

我当前完整的html工作脚本存在问题:

<html>
 <head>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js">
  </script>
</head>
<body>
<script>
var count1=0;
var strPrev1 = '';
$(document).ready(function()
{
  $('#input1').keyup(function(e)
  {

//    Filter input text to accept only numbers , arrow movement, backspace, delete

    if ((e.keyCode == 8) ||  (e.keyCode == 46) || (e.keyCode >= 35 && e.keyCode <= 40) || (e.keyCode >= 48 && e.keyCode <= 57) || (e.keyCode >= 96 && e.keyCode <= 105))
    {
      if ((e.keyCode >= 48 && e.keyCode <= 57) || (e.keyCode >= 96 && e.keyCode <= 105))
      {
        count1++;
//        if count1 % 2 = 0, add divider '-'
        if (count1 % 2 == 0) 
        { 
          $("#input1").val($("#input1").val()+'-');
        }
      } 
      if ((e.keyCode == 8) ||  (e.keyCode == 46))
      {
//      no idea what to do to keep the mask format 99-99-99-99-[repeat format until last inputed number] is it "count1--;" ?
      }
      strPrev1 = $("#input1").val();
    }
    else 
    {
//      replace input text value with previous accepted
      $("#input1").val(strPrev1);
    }
  });
});
</script>

<input name="input1" id="input1" type="text">

</body>
</html>

var count1=0;
var strPrev1='';
$(文档).ready(函数()
{
$('#input1').keyup(函数(e)
{
//过滤输入文本以仅接受数字、箭头移动、退格、删除

如果((e.keyCode==8)| |(e.keyCode==46)| |(e.keyCode>=35&&e.keyCode=48&&e.keyCode=96&&e.keyCode=48&&e.keyCode=96&&e.keyCode如果用户按住一个键,则不会触发keyup事件,请使用keypress事件处理程序

$('#input1').keypress(function(e)


这是我自己做的。以下是答案:

<html>
 <head>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js">
  </script>
</head>
<body>
<script>
var strPrev1 = '';
var strScore1 = '';
$(document).ready(function()
{
  $('#input1a').keyup(function(e)
  {
    if ( $("#input1a").val() == '' ) { $("#input0a").val(''); }
//    Filter input text to accept only numbers , arrow movement, backspace, delete
    if ((e.keyCode == 8) ||  (e.keyCode == 46) ||  (e.keyCode == 16) || (e.keyCode >= 35 && e.keyCode <= 40) || (e.keyCode >= 48 && e.keyCode <= 57) || (e.keyCode >= 96 && e.keyCode <= 105))
    {
      if ((e.keyCode >= 48 && e.keyCode <= 57) || (e.keyCode >= 96 && e.keyCode <= 105) || (e.keyCode == 8) ||  (e.keyCode == 46))
      {
        $("#input1a").val().replace("-","");
        strScore1 = $("#input1a").val().match(/.{1,2}/g);
        $("#input0a").val(strScore1.join().replace(/,/g , "-"));
      } 
      strPrev1 = $("#input1a").val();
    }
    else 
    {
//      replace input text value with previous accepted
      $("#input1a").val(strPrev1);
    }
  });
});
</script>

RESULT : <input name="input0a" id="input0a" type="text" style="width: 100%;" disabled>
SOURCE : <input name="input1a" id="input1a" type="text">
</body>
</html>

var strPrev1='';
var strScore1='';
$(文档).ready(函数()
{
$('#input1a').keyup(函数(e)
{
if($(“#input1a”).val()=''){$(“#input0a”).val('')}
//过滤输入文本以仅接受数字、箭头移动、退格、删除

如果((e.keyCode==8)| |(e.keyCode==46)| |(e.keyCode==16)| |(e.keyCode>=35&&e.keyCode=48&&e.keyCode=96&&e.keyCode=48&&e.keyCode=96&&e.keyCode=96&&e.keyCode似乎只能接受一个字符……在我按数字、退格和字母表之后,它并没有给出我想要的结果。例如,如果用户输入123465789,它将变成12-34-65-78-9。您的答案只允许一个字符仅数字…不自动屏蔽…尝试输入123[backspace]45,您的结果仅为35。正确的结果应为12-45-。是的,我注意到在我发布后,我猜仍需要一些工作。抱歉,我无法理解您的代码。以下是我尝试复制的内容,将完整的html脚本粘贴到真实的html文件中。
<html>
 <head>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js">
  </script>
</head>
<body>
<script>
var strPrev1 = '';
var strScore1 = '';
$(document).ready(function()
{
  $('#input1a').keyup(function(e)
  {
    if ( $("#input1a").val() == '' ) { $("#input0a").val(''); }
//    Filter input text to accept only numbers , arrow movement, backspace, delete
    if ((e.keyCode == 8) ||  (e.keyCode == 46) ||  (e.keyCode == 16) || (e.keyCode >= 35 && e.keyCode <= 40) || (e.keyCode >= 48 && e.keyCode <= 57) || (e.keyCode >= 96 && e.keyCode <= 105))
    {
      if ((e.keyCode >= 48 && e.keyCode <= 57) || (e.keyCode >= 96 && e.keyCode <= 105) || (e.keyCode == 8) ||  (e.keyCode == 46))
      {
        $("#input1a").val().replace("-","");
        strScore1 = $("#input1a").val().match(/.{1,2}/g);
        $("#input0a").val(strScore1.join().replace(/,/g , "-"));
      } 
      strPrev1 = $("#input1a").val();
    }
    else 
    {
//      replace input text value with previous accepted
      $("#input1a").val(strPrev1);
    }
  });
});
</script>

RESULT : <input name="input0a" id="input0a" type="text" style="width: 100%;" disabled>
SOURCE : <input name="input1a" id="input1a" type="text">
</body>
</html>