Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript EventListener更改手动更改不起作用_Javascript_Addeventlistener - Fatal编程技术网

Javascript EventListener更改手动更改不起作用

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,

我有一个html元素X的eventlistener,当X的值更改时,它会隐藏一些其他元素

我有另一个函数,它将改变X的值。但是,当此函数执行并更改X的值时,不会触发eventlistener更改

在这种情况下,X是“sau布局类型”。这个元素值会随着下面的第一个事件侦听器而更改

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检测变量更改?请参阅