【问题标题】:TextBox Validation to put special character while typing输入时输入特殊字符的文本框验证
【发布时间】:2015-09-13 21:09:13
【问题描述】:

我对 Textbox 有要求。当我输入一些值时,应该进行一些验证以在值之间添加“-”。

当我将值 123456789 放入文本框时,它会自动显示“123-45678-9”或任何其他格式,具体取决于业务。我不知道该怎么办。我需要在文本框中输入值时显示“-”。

任何想法/建议都会有所帮助。

【问题讨论】:

  • 到目前为止你有没有尝试过?
  • onKeyPress 事件你可以这样做,在你必须做多少个字符之后
  • 我需要做的每 3 个元素。
  • 首先阅读 .change() 事件处理程序:api.jquery.com/change 然后将其与 String.match() 函数 w3schools.com/jsref/jsref_match.asp 结合起来,您就完成了很多
  • 我试过这个 $(document).ready(function(){ $("#autoCompleteID").on("keyup",function(event) { /* 对事件采取行动 */ var value = $("#autoCompleteID").val(); console.log(value); if(value.length==3 || value.length==6){ value = value+"-"; $("# autoCompleteID").val(value); } }); });

标签: javascript jquery html input inputbox


【解决方案1】:

请看@this,根据需要自定义

    <!DOCTYPE html>
<html>
<body>

<input type="text" id="myid" onkeyup="myFun()">


<script>
var counter = 0;
function myFun() {

    counter++;
    if(counter==3)
    {
       var value = document.getElementById("myid").value;
       value = value + "-";
       document.getElementById("myid").value = value;
       counter=0;
    }
}
</script>

</body>
</html>

【讨论】:

    【解决方案2】:

    这取决于你使用的是哪个元素标签。

    如果您使用的是 ,那么您可以使用模式属性和正则表达式。 我对您到底想要什么感到有些困惑;但是,这里有一个示例,说明如何仅接受 123-45678-9 之类的数字,格式为 3 个数字,然后是 5 个数字的破折号,然后是一个破折号,然后是一个数字。

    [0-9]{3}-[0-9]{5}-[0-9]{1} 这表示它将接受任何数字,[0-9],用于前 3 个点,{3},第一个数字是最小值,潜在的第二个数字是连续数字的最大数量,然后是破折号,-,依此类推,这些规则随 {5} 和 {1} 略有变化。

    但是,如果您只想在输入中包含破折号和数字,则可以使用以下正则表达式:“[0-9]|-”

    最终,您的解决方案可能类似于:

    如果您使用 ,则没有您可以应用于元素的模式属性,您必须使用 javascript 来限制接受哪种类型的输入模式。

    【讨论】:

    • 对不起,我的意思是“[0-9]|\-”
    • 要求在文本框中输入我的帐号或信用卡。
    • 那你需要一个很具体的格式,你具体需要什么格式?给我你需要的所有格式,我可以为你写一个正则表达式。这是信用卡的示例:1234-5678-9012 输入将是
    • 这对我来说很好,但我怎么能把它加进去。
    • 还需要补充什么?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多