Javascript EventListener更改手动更改不起作用
我有一个html元素X的eventlistener,当X的值更改时,它会隐藏一些其他元素 我有另一个函数,它将改变X的值。但是,当此函数执行并更改X的值时,不会触发eventlistener更改 在这种情况下,X是“sau布局类型”。这个元素值会随着下面的第一个事件侦听器而更改Javascript EventListener更改手动更改不起作用,javascript,addeventlistener,Javascript,Addeventlistener,我有一个html元素X的eventlistener,当X的值更改时,它会隐藏一些其他元素 我有另一个函数,它将改变X的值。但是,当此函数执行并更改X的值时,不会触发eventlistener更改 在这种情况下,X是“sau布局类型”。这个元素值会随着下面的第一个事件侦听器而更改 document.getElementById("form_1").addEventListener("change", function(e) { var changed_id = e.target.id,
document.getElementById("form_1").addEventListener("change", function(e) {
var changed_id = e.target.id,
changed_type = e.target.type,
changed_value = e.target.value,
target_id,
target_ele;
if (changed_id.endsWith("_preview")) {
target_id = changed_id.substring(0, changed_id.length - 8),
target_ele = document.getElementById(target_id);
/*This is where the elements value is changed, should trigger event listener below.*/
target_ele.value = changed_value;
}
});
document.getElementById("sa_placement_type").addEventListener("change", function () {
var sa_type = document.getElementById("sa_placement_type"),
wrapper_percent = document.getElementById("div_placement_percent"),
wrapper_flatfee = document.getElementById("div_placement_flatfee");
if (sa_type.value == 'PercentageFee') {
wrapper_percent.style.display = 'block';
wrapper_flatfee.style.display = 'none';
} else if (sa_type.value == 'FlatFee') {
wrapper_percent.style.display = 'none';
wrapper_flatfee.style.display = 'block';
}
});
你能添加HTML并使其成为可执行文件吗?
change
事件仅在用户更改值时发生,而不是在Javascript更改值时发生。是的,我创建了一个函数,手动调用并更新该元素。所以它是可行的,但我感觉有点脏,因为我可能需要为类似的情况添加更多的手动功能……有没有其他方法可以通过JS检测变量更改?请参阅