Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何拥有一个;粘的;电话号码格式表格上的占位符?_Javascript_Html_Css - Fatal编程技术网

Javascript 如何拥有一个;粘的;电话号码格式表格上的占位符?

Javascript 如何拥有一个;粘的;电话号码格式表格上的占位符?,javascript,html,css,Javascript,Html,Css,我想在表单中显示电话号码的格式作为占位符,而不是在用户键入号码时被删除 <form action="payonline.html"> <input type="tel" id="phone" name="phone" pattern="[0-9]{3}-[0-9]{3}-[0-9]{4}" required placeholder="___ - ___ - ____ "> <input

我想在表单中显示电话号码的格式作为占位符,而不是在用户键入号码时被删除

<form action="payonline.html">
     <input type="tel" id="phone" name="phone" pattern="[0-9]{3}-[0-9]{3}-[0-9]{4}" required placeholder="___ - ___ - ____ ">                             
       <input type="submit" value="Submit">
  </form>
html占位符随着用户类型而消失。我想让占位符留下来,引导用户键入电话号码

<form action="payonline.html">
     <input type="tel" id="phone" name="phone" pattern="[0-9]{3}-[0-9]{3}-[0-9]{4}" required placeholder="___ - ___ - ____ ">                             
       <input type="submit" value="Submit">
  </form>

我认为您需要在javascript中使用onkeypress和onkeyup事件来创建更加用户友好的电话输入。 您可以使用下面的代码。我不确定您是否使用jquery,所以我使用纯javascript

<form action="payonline.html">
     <input type="tel" id="phone" name="phone" pattern="[0-9]{3}-[0-9]{3}-[0-9]{4}" required placeholder="___ - ___ - ____ " onkeypress="validate_int(this)" onkeyup="phone_number_mask()">                             
       <input type="submit" value="Submit">
  </form>
<script>

 function validate_int(myEvento) {
  if ((myEvento.charCode >= 48 && myEvento.charCode <= 57) || myEvento.keyCode == 9 || myEvento.keyCode == 10 || myEvento.keyCode == 13 || myEvento.keyCode == 8 || myEvento.keyCode == 116 || myEvento.keyCode == 46 || (myEvento.keyCode <= 40 && myEvento.keyCode >= 37)) {
    dato = true;
  } else {
    dato = false;
  }
  return dato;
}
function phone_number_mask() {
      var myMask = "___-___-____";
      var myCaja = document.getElementById("phone");
      var myText = "";
      var myNumbers = [];
      var myOutPut = ""
      var theLastPos = 1;
      myText = myCaja.value;
      //get numbers
      for (var i = 0; i < myText.length; i++) {
        if (!isNaN(myText.charAt(i)) && myText.charAt(i) != " ") {
          myNumbers.push(myText.charAt(i));
        }
      }
      //write over mask
      for (var j = 0; j < myMask.length; j++) {
        if (myMask.charAt(j) == "_") { //replace "_" by a number 
          if (myNumbers.length == 0)
            myOutPut = myOutPut + myMask.charAt(j);
          else {
            myOutPut = myOutPut + myNumbers.shift();
            theLastPos = j + 1; //set caret position
          }
        } else {
          myOutPut = myOutPut + myMask.charAt(j);
        }
      }
      document.getElementById("phone").value = myOutPut;
      document.getElementById("phone").setSelectionRange(theLastPos, theLastPos);
    }


</script>

函数验证_int(myEvento){

如果((myEvento.charCode>=48&&myEvento.charCode),我想你要找的是一个输入掩码,其中显示类似于
(\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu)的内容。有很多掩码库,我认为没有任何内置浏览器你会发现的。我很好奇为什么会有人对这个问题投反对票。这并没有显示出任何解决问题的努力,甚至没有在谷歌或其他网站上做过任何研究。这是经典的“为我写”