没有为我的输入元素调用 Keyup 处理程序
Keyup handler is not getting called for my input element
我是 javascript 的新手,所以这似乎是一个微不足道的问题。我正在尝试编写一个 javascript 程序,将破折号插入 phone 数字,但我无法让我的代码工作。当我使用 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">
我的编辑器有问题,正在突出显示内容。单引号双引号有问题吗?行中的 returns 行吗?当我在 Chrome 版本 66.
上查看源代码时,它看起来没问题
您忘记了 'onkeyup' 属性上的括号。
此外,在从变量 'mystring' 调用 '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()">
function keyup() {
var mystring = document.getElementById('Phone').value + '-'
document.getElementById('Phone').value=mystring;
}
<input type="text" id="Phone" name="Phone" pattern="\d{3}[\-]\d{3}[\-]\d{4}" placeholder="###-###-####" onkeyup="keyup()">
根据你在问题中所说的,这就是你想要的:
function keyup() {
var mystring = document.getElementById('Phone').value;
document.getElementById('Phone').value = mystring + "-";
}
<input type="text" id="Phone" name="Phone" pattern="\d{3}[\-]\d{3}[\-]\d{4}" placeholder="###-###-####" oninput="keyup()" />
- 您需要在
onkeyup="keyup"
中的 keyup
之后添加 ()
- 你正在
concat
undefined
- 您甚至不需要使用
concat
,只需使用 +
运算符
- 将
setAttribute("value", ...)
替换为 .value = ...
。有关详细信息,请参阅
- 使用
input
事件而不是 keyup
。否则,每次按下 都会添加一个 -
请注意,这将在 每个 数字之后放置一个 -
。如果您想要不同的东西(您可能会这样做),请在您的问题中说明您想要什么。
我是 javascript 的新手,所以这似乎是一个微不足道的问题。我正在尝试编写一个 javascript 程序,将破折号插入 phone 数字,但我无法让我的代码工作。当我使用 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">
我的编辑器有问题,正在突出显示内容。单引号双引号有问题吗?行中的 returns 行吗?当我在 Chrome 版本 66.
上查看源代码时,它看起来没问题您忘记了 'onkeyup' 属性上的括号。
此外,在从变量 'mystring' 调用 '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()">
function keyup() {
var mystring = document.getElementById('Phone').value + '-'
document.getElementById('Phone').value=mystring;
}
<input type="text" id="Phone" name="Phone" pattern="\d{3}[\-]\d{3}[\-]\d{4}" placeholder="###-###-####" onkeyup="keyup()">
根据你在问题中所说的,这就是你想要的:
function keyup() {
var mystring = document.getElementById('Phone').value;
document.getElementById('Phone').value = mystring + "-";
}
<input type="text" id="Phone" name="Phone" pattern="\d{3}[\-]\d{3}[\-]\d{4}" placeholder="###-###-####" oninput="keyup()" />
- 您需要在
onkeyup="keyup"
中的 - 你正在
concat
undefined
- 您甚至不需要使用
concat
,只需使用+
运算符 - 将
setAttribute("value", ...)
替换为.value = ...
。有关详细信息,请参阅 - 使用
input
事件而不是keyup
。否则,每次按下 都会添加一个
keyup
之后添加 ()
-
请注意,这将在 每个 数字之后放置一个 -
。如果您想要不同的东西(您可能会这样做),请在您的问题中说明您想要什么。