Javascript 没有为我的输入元素调用Keyup处理程序

Javascript 没有为我的输入元素调用Keyup处理程序,javascript,onkeyup,Javascript,Onkeyup,我是javascript新手,所以这似乎是一个微不足道的问题。我正试图编写一个javascript程序,将破折号插入电话号码,但我的代码无法正常工作。当我使用onkeyup时,没有发生任何事情 我做错什么了吗?到目前为止,似乎只有onfocus对我有效 函数keyup(){ var mystring; concat(document.getElementById('Phone').value,'-'); document.getElementById('Phone').setAttribute

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

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

函数keyup(){
var mystring;
concat(document.getElementById('Phone').value,'-');
document.getElementById('Phone').setAttribute('value',mystring);
}

您忘记了“onkeyup”属性上的括号

另外,在从变量“mystring”调用“concat”方法之前,必须先声明该变量的字符串值

比如:

<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()">

函数keyup(){
console.log(“keyup!!”)
var mystring=“”;
concat(document.getElementById('Phone').value,'-');
document.getElementById('Phone').setAttribute('value',mystring);
}
函数keyup(){
var mystring=document.getElementById('Phone')。value+'-'
document.getElementById('Phone')。value=mystring;
}

根据你在问题中所说的,这就是你想要的:

函数keyup(){
var mystring=document.getElementById('Phone').value;
document.getElementById('Phone')。value=mystring+“-”;
}

我尝试使用此代码,但仍然没有任何结果。我需要输入上面的脚本吗?我现在在身体底部有一个。我在哪里可以看到控制台日志?这最终会得到一个连字符谢谢,所以现在我应该能够对字符串的长度使用条件语句了?是的,您可以使用
if
语句来确定何时添加连字符。