我是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上查看源代码时,它似乎没问题。
答案 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)
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;
答案 2 :(得分:0)
根据您在问题中的说法,这就是您想要的:
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;
()
放在keyup
onkeyup="keyup"
之后
concat
undefined
concat
,只需使用+
运营商setAttribute("value", ...)
替换为.value = ...
。有关详细信息,请参阅this answer input
事件代替keyup
。否则,每次按键都会添加-
请注意,这会在每个号后面加-
。如果你想要一些不同的东西,你可能会这样做,在你的问题中澄清你想要的东西。