输入字段限制为9个字符,并且在3个字符之后自动广告“0”-&”;

Input field limit 9 char and after 3 char automaticly ads "-"

本文关键字:字符 之后 3个 字段 9个 输入      更新时间:2023-09-26
<input id="myText" type="text" placeholder="XXX-XXX-XXX" /></input>
<script type="text/javascript">
    document.getElementById("myText").value.substr(0, 9).match(/.{1,3}/g).join("-");
</script>

当前的JavaScript存在一些问题。首先,当加载页面时,脚本将只运行一次,这意味着在此之后输入到myText的任何输入都将永远不会被处理。考虑绑定到myText的事件,例如onkeyup事件。

另一个问题是,当将myText的值拆分为3个字符的部分时,您的JavaScript没有考虑到现有的短划线-这会导致不理想的行为,即在看似随机的位置上,越来越多的短划线将被添加到值中。

最后,正如Tushar在评论中提到的,您需要将myText的值设置为您创建的新的、经过处理的值。否则,这个值最终会被未使用和丢弃,并且您的代码似乎什么都不做。

把这些放在一起,固定代码可能看起来像:

var textInput = document.getElementById("myText");
textInput.onkeyup = function()
{
    var dashlessInput = textInput.value.replace(/-/g, "");
    textInput.value = dashlessInput.substr(0, 9).match(/.{1,3}/g).join("-");
};
<input id="myText" type="text" placeholder="XXX-XXX-XXX" /></input>

希望这能有所帮助!如果你有任何问题,请告诉我。

为了将来的参考,试着通过解释你想要实现的目标,并明确指出你面临的问题,来清楚地说明你的问题。这样,你更有可能得到好的答案,而不是反对票