【问题标题】:How can I format data as the user types?如何在用户键入时格式化数据?
【发布时间】:2016-02-25 20:40:09
【问题描述】:

在我的 HandsOnTable 中有一个列是我们的 SKU。我们将它们格式化为 99-9-999。如何设置蒙版,或者我可以让它在用户键入时插入破折号?我尝试了自定义编辑器和渲染器,但没有成功。我真的很想改变keyup 的值。

【问题讨论】:

  • 这是一个艰难的过程,因为我不确定编辑器是否有事件,例如 keyup。我想知道您是否可以在打开编辑器时以某种方式附加 keyup 事件,并在关闭时将其删除。我会将其发布在 github 页面上,以便开发人员可以将其添加为功能,或者至少将您指向编辑器代码,您可以在其中添加此事件
  • 如果您正在寻找一个名为 masked input 的 Jquery 插件。 here's the link
  • 我已经尝试过 jquery 掩码,但它似乎只适用于输入而不适用于 td。

标签: javascript dom-events handsontable


【解决方案1】:

您可以在这种情况下使用正则表达式。类似的东西:

var fnf = document.querySelector("input");
fnf.addEventListener('keyup', function(evt) {  
   let val = evt.target.value;
    var n = (val.replace(/(\d{3})(\d{3})(\d{4})/, "$1-$2-$3"));
    console.log(n)
    fnf.value = n.toLocaleString();
}, false);
<input value="121-212-121-212-1212" placeholder="SKU">

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-12
    • 2023-01-03
    • 2021-11-25
    • 1970-01-01
    相关资源
    最近更新 更多