javascript - 限制用户编辑特殊字符后的字符 - Jquery

标签 javascript jquery

我有一个 HTML 表单中的文本字段,并且我对它有一个自定义要求。

该字段将自动填充冒号 (:),然后动态填充 8 位数字。用户可以在冒号之前输入字母数字字符,但应限制用户在文本字段内编辑冒号 (:) 后面的数字。这在 Jquery 中可能吗?

var input_value = $('#account_no").val();
// Suppose the input_value = '123abc-123:20122015';

因此,如果用户尝试编辑冒号后的值(即“20122015”),则应对其进行限制并提醒用户。而且,旧值应保留在文本字段中。这可能吗?

$('#account_number').live('input propertychange paste', function() {
  // Code to be written
}

JQuery 版本:1.8.3

最佳答案

我尝试了 jQuery 解决方案:

我知道这是一个黑客行为,但我正在 blur 事件上的 : 符号之后进行模式匹配。

这是我所做的:

$(document).ready(function() {
  var input_value = $("#account_no").val();
  var OriginalStr = input_value.substr(input_value.indexOf(":") + 1, input_value.length);

  //console.log(OriginalStr);
  $("#account_no").on("blur", function() {
    var val = $(this).val();

    //console.log(val);
    var substr = val.substr(val.indexOf(":") + 1, val.length);
    console.log(substr);
    if (substr !== OriginalStr)
      $("#account_no").val(input_value);
    else
      input_value = $("#account_no").val();

  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input id="account_no" value="123abc-123:20122015" />

使用blur事件进行 fiddle :http://jsfiddle.net/sandenay/7jk96gs7/1/

使用keyup事件进行 fiddle :http://jsfiddle.net/sandenay/7jk96gs7/3/

关于javascript - 限制用户编辑特殊字符后的字符 - Jquery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33079470/

相关文章:

Javascript访问另一个网页

javascript - 全屏功能无法正常工作

php - 预匹配 : equal sign in pattern

javascript - Jquery onfocus 不工作

javascript - 从 Json 对象中删除双引号

单击 "Submit"后重定向用户/更改文本的 Javascript 函数

javascript - 每次点击事件期间的 URL 覆盖

jquery - 如何使用 jQuery 的 anchor 设置文本框的值?

c# - Css display none 不适用于 div 及其内容

javascript - 如何将参数传递给脚本标签?