我的输入元素

时间:2018-05-30 20:11:51

标签: javascript onkeyup

我是javascript的新手,所以这似乎是一个微不足道的问题。我正在尝试编写一个将破折号插入电话号码的javascript程序,但我无法让我的代码工作。使用onkeyup时没有任何事情发生。

我做错了吗?到目前为止,似乎只有onfocus对我有效。

function keyup() {
  var mystring;
  mystring.concat(document.getElementById('Phone').value, '-');
  document.getElementById('Phone').setAttribute('value', mystring);
}
<input type="text" id="Phone" name="Phone" pattern="\d{3}[\-]\d{3}[\-]\d{4}" placeholder="###-###-####" onkeyup="keyup">

我的编辑有问题并且正在突出显示内容。单引号双引号是否存在问题?线条中的回报是否正常?当我在Chrome版本66上查看源代码时,它似乎没问题。

3 个答案:

答案 0 :(得分:0)

您忘记了'onkeyup'属性上的括号。

另外,在从它调用'concat'方法之前,你必须向变量'mystring'声明一个字符串值。

类似的东西:

<script>
  function keyup() {
  console.log("keyup!!")
    var mystring = "";
    mystring.concat(document.getElementById('Phone').value, '-');
    document.getElementById('Phone').setAttribute('value', mystring);
  }
</script>

<input type="text" id="Phone" name="Phone" pattern="\d{3}[\-]\d{3}[\-]\d{4}" placeholder="###-###-####" onkeyup="keyup()">

答案 1 :(得分:0)

&#13;
&#13;
function keyup() {
  var mystring = document.getElementById('Phone').value + '-'

  document.getElementById('Phone').value=mystring;
}
&#13;
<input type="text" id="Phone" name="Phone" pattern="\d{3}[\-]\d{3}[\-]\d{4}" placeholder="###-###-####" onkeyup="keyup()">
&#13;
&#13;
&#13;

答案 2 :(得分:0)

根据您在问题中的说法,这就是您想要的:

&#13;
&#13;
function keyup() {
  var mystring = document.getElementById('Phone').value;
  document.getElementById('Phone').value = mystring + "-";
}
&#13;
<input type="text" id="Phone" name="Phone" pattern="\d{3}[\-]\d{3}[\-]\d{4}" placeholder="###-###-####" oninput="keyup()" />
&#13;
&#13;
&#13;

  • 您需要将()放在keyup
  • onkeyup="keyup"之后
  • 您是concat undefined
  • 您甚至不需要使用concat,只需使用+运营商
  • setAttribute("value", ...)替换为.value = ...。有关详细信息,请参阅this answer
  • 使用input事件代替keyup。否则,每次按键都会添加-

请注意,这会在每个号后面加-。如果你想要一些不同的东西,你可能会这样做,在你的问题中澄清你想要的东西。