-1

test()如果用户在 html 输入字段中使用id="sc1dc1"(不"onchange="直接在 HTML 中使用)输入内容,我想启动该功能。怎么了?

HTML:

<!DOCTYPE html>
<html>
<head>
 <title></title>
</head>
<body>
 <input type="text" id="sc1dc1" > 
</body>
</html>

Javascript:

var x = document.getElementById("sc1dc1").value;
x.onchange = test;
function test(){alert("Test")};
4

3 回答 3

1

关于onchange事件的事情是它们仅在<input>字段失去焦点时触发。如果你想立即响应,你应该oninput像这样使用:

x.oninput = test;

您还需要x等于实际元素,而不是元素的。删除:

.value

从这一行:

var x = document.getElementById("sc1dc1").value;

会修复它。

演示onchange

var x = document.getElementById("sc1dc1");
x.onchange = test;

function test() {
  alert("Test")
};
<!DOCTYPE html>
<html>

<head>
  <title></title>
</head>

<body>
  <input type="text" id="sc1dc1">
</body>

</html>

演示oninput

var x = document.getElementById("sc1dc1");
x.oninput = test;

function test() {
  alert("Test")
};
<!DOCTYPE html>
<html>

<head>
  <title></title>
</head>

<body>
  <input type="text" id="sc1dc1">
</body>

</html>

于 2018-12-27T23:08:58.933 回答
0

javascript应该是这样的:

var x = document.getElementById("sc1dc1");
x.onchange = test;
function test(){alert("Test")};
<!DOCTYPE html>
<html>
<head>
 <title></title>
</head>
<body>
 <input type="text" id="sc1dc1" > 
</body>
</html>

你不需要 .value

于 2018-12-27T23:07:22.310 回答
0

您需要将函数分配给test元素的oninput属性。x应该是HTMLInputElement,而不是元素的值。

改变

var x = document.getElementById("sc1dc1").value;

var x = document.getElementById("sc1dc1");

如果您想在输入文本时而不是在输入失去焦点后立即触发事件处理程序,请使用oninput而不是。onchange

var x = document.getElementById("sc1dc1");
x.oninput = test;
function test(){alert("Test")};
<!DOCTYPE html>
<html>
<head>
 <title></title>
</head>
<body>
 <input type="text" id="sc1dc1" > 
</body>
</html>

于 2018-12-27T23:07:56.720 回答