输入字段限制9个字符和3个字符后自动广告“ - ”

时间:2015-11-03 15:29:41

标签: javascript html

<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>

1 个答案:

答案 0 :(得分:0)

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

另一个问题是,在将myText的值拆分为3个字符的部分时,您的JavaScript没有考虑现有的破折号 - 这会导致不良行为,其中会添加越来越多的破折号价值,看似随意的位置。

最后,正如Tushar在评论中所提到的,您需要将myText的值设置为您创建的新处理值。否则,该值最终会被废弃并被丢弃,而您的代码似乎什么都不做。

将所有内容放在一起,固定代码可能如下所示:

&#13;
&#13;
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("-");
};
&#13;
<input id="myText" type="text" placeholder="XXX-XXX-XXX" /></input>
&#13;
&#13;
&#13;

希望这有帮助!如果您有任何疑问,请告诉我。

供将来参考 - 尝试通过解释您想要达到的目标来明确说明您的问题,并具体说明您遇到的问题。通过这种方式,您更有可能吸引好的答案,而不是赞成票。