当JavaScript修改输入类型=“ text”时,我想立即检测到它的变化。当用户手动更改它时,可以通过以下方式触发检测:
onchange="myfunction();" onkeyup="this.onchange();" onpaste="this.onchange();" oninput="this.onchange();"
Run Code Online (Sandbox Code Playgroud)
我只是想不通这一点。
我有以下设置: 2 个复选框,这样当第一个被选中时,它会切换第二个的状态。第二个有一个 onchange 监听器,它应该在它发生变化时触发警报。
问题是,当我点击它时,onchange 会被触发,但是当我使用第一个改变它的状态时,事件不会被触发。
我错过了什么吗?还是 onchange 事件基本上意味着像 onclick 一样?
<!DOCTYPE html>
<html>
<body>
<form action="">
<input id='one' type="checkbox" name="vehicle" value="Bike">I have a bike<br>
<input id='two' type="checkbox" name="vehicle" value="Car" checked>I have a car
</form>
<script>
function show(){
alert(document.getElementById('two').checked);
}
document.getElementById('one').addEventListener('click', function(){
var two = document.getElementById('two');
two.checked = ! two.checked;
});
document.getElementById('two').addEventListener('change', function(){
alert("changed");
});
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助:)
我创建了以下 html 页面。
<html>
<head></head>
<body>
<input type="text" value="" id="Textbox" onchange="alert('text change');" />
<input type="button" value="" onclick="document.getElementById('Textbox').value = 'Hello';" />
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
当输入的文本输入到文本框中时,onchange 事件运行良好。我编写了一段代码,当单击按钮时,“Hello”文本将输入到文本框中。但是文本框的onchange事件不能很好地工作。我如何捕获更改事件?谢谢。
我正在尝试编写一个书签来自动填充表单,以简化手动测试.该网站在React中实施.我尝试过使用JQuery,例如:
$("#emailAddress").val("bob@example.com").changed()
Run Code Online (Sandbox Code Playgroud)
虽然该input字段在浏览器中明显更新,但看起来该字段未被识别为已更改,因为表单提交时验证失败,表示数据丢失.
有没有一种可行的方法来使用ad-hoc JS自动填充React表单字段,而不更改任何源代码?
(注意:我理解这种直接操作不是在一般应用程序开发中使用React的正确方法.在这里,我正在寻找任何解决方案,无论多么简单,都要简化特殊的手动测试).