在浏览器检查表单是否有任何更改(“ onchange”)之后,我将需要任何“单击”才能运行。有可能吗?
例如:
<input type="text" onchange="alert('CHANGED!')">
<a href="javascript:alert('CLICKED!')">click here</a>
更改上面的输入元素后,当我单击链接时,总是在输入onchange事件之前调用onclick事件。你可以逆转吗?
答案 0 :(得分:0)
您可以使用event.preventDefault()
和setTimeout()
取消本机click
事件并推迟应该发生的事件,直到更改事件有机会运行为止。
此外,请注意,这些天不应该使用内联HTML事件属性。相反,请遵循以下评论中所述的现代标准。
// Get references to your DOM elements
var input = document.querySelector("input");
var link = document.querySelector("a");
// Set up event handlers in JavaScript, not in HTML
input.addEventListener("change", function(){ alert("changed"); });
link.addEventListener("click", function(event){
event.preventDefault();
setTimeout(function(){
alert("clicked");
});
});
<input type="text">
<a href="#">click here</a>