onchange属性在javascript中不起作用

时间:2018-12-27 23:02:50

标签: javascript html html5 object

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

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")};

3 个答案:

答案 0 :(得分:0)

javascript应该是这样的:

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

您不需要.value

答案 1 :(得分:0)

您需要将函数pos = [] for idx,ch in enumerate(correct_word): if ch == guess: pos.append(idx) 分配给元素的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")};

答案 2 :(得分:0)

onchange事件有关的是,它们仅在<input>字段失去焦点时才触发。如果您希望立即得到答复,则应像这样使用oninput

x.oninput = test;

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

.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>