显示8个字符的密码格式中的3个文本字符

时间:2016-12-15 09:11:10

标签: javascript jquery html

功能

使用USB扫描仪的用户扫描ID,捕获ID号(8个字符),并将值输入<input type=password>字段。但是,不是显示捕获的ID值的所有8个项目符号点,而是只有5个字符是密码类型,其余3个将是文本格式。

问题:

我尝试过在线搜索,但似乎无法找到任何可能的建议或解决方案。我已将输入字段类型设置为密码,因此此时字段中的所有值都是密码类型格式。

但是,我想要实现的是前5个字符遵循密码类型格式,而其余3个字符是文本类型格式。

我现在取得的成就:

........

我希望实现的目标:

..... 12A

我想请求帮助或指出我的任何方向,以便我能够做到这一点。

感谢。

<input type="password" id= "NRICCodeField"  style="position:absolute; top:545px; left:690px; height:68px; width:545px; outline: 0; border: 0; font-size:70px; font-color:#765725; font-family:'Gothic'; background: transparent; z-index:100;" autofocus src="lib/image/transparent.png">

2 个答案:

答案 0 :(得分:0)

我找到了一种方法,如果适合您,可以查看下面的代码。您需要一个代理隐藏字段,您应该存储实际值,文本字段将仅显示在用户视图中。当表单将被提交时,您应该从隐藏字段而不是文本字段中选择数据。

$ git reset --hard HEAD
$ git update-index --assume-unchanged .idea/vcs.xml

答案 1 :(得分:0)

这可能会起到作用:

&#13;
&#13;
$(document).ready(function(){
  // Edit these if you want to switch to another character
  // and/or the number of characters you want to hide
  var unicodeChar = "●", hideNChars = 5;

  // On text input, we turn the hidden characters into their real
  // values, save into data("passcode") and then re-hide the 'n'
  // first characters
  $('#userID').on('input', function(){
    var regex = new RegExp(unicodeChar, "g");
    for (var i = 0, v; match = regex.exec($(this).val()); i++) {
      v = $(this).val();
      $(this).val( v.substr(0, match['index']) + $(this).data("passcode")[i] + v.substr(match['index'] + 1) );
    }
    var value = $(this).val();
    $(this).data("passcode", value).val(Array(value.length <= hideNChars ? value.length + 1 : hideNChars + 1).join(unicodeChar) + value.substr(hideNChars));

    console.log($(this).data("passcode"));
  }).data("passcode", "");
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" value="" id="userID">
&#13;
&#13;
&#13;

该值可在$('#userID').data('passcode')中检索,但如果需要,您可以将该数据存储在隐藏的输入中,或者只是在表单提交时清除输入文本。

如果需要,可以轻松改进此代码并使其更加复杂。 (例如,您可能需要知道用户尝试删除/替换的隐藏字符是什么)