Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.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 从变更事件中触发变更事件_Javascript_Jquery - Fatal编程技术网

Javascript 从变更事件中触发变更事件

Javascript 从变更事件中触发变更事件,javascript,jquery,Javascript,Jquery,编辑:下面是一个更简单的JSFIDLE版本的代码,它更简洁地说明了问题: 我有一堆表单元素,更新后会更改列表中下一个元素的选项。我的工作很好。但是,现在我正在尝试获取它,以便如果根元素被更改,那么它将检查下一个元素以查看它是否是新列表的一部分,如果不是,则将其变为空,然后触发下一个元素的更改事件(这样它将反过来使下一个元素变为空,依此类推)。更改事件似乎没有启动 我在控制台中没有收到任何错误 这是因为我试图从变更事件中触发变更事件吗?有什么阻碍吗 (或者我只是在做一些愚蠢的事情——我大约一周前

编辑:下面是一个更简单的JSFIDLE版本的代码,它更简洁地说明了问题:

我有一堆表单元素,更新后会更改列表中下一个元素的选项。我的工作很好。但是,现在我正在尝试获取它,以便如果根元素被更改,那么它将检查下一个元素以查看它是否是新列表的一部分,如果不是,则将其变为空,然后触发下一个元素的更改事件(这样它将反过来使下一个元素变为空,依此类推)。更改事件似乎没有启动

我在控制台中没有收到任何错误

这是因为我试图从变更事件中触发变更事件吗?有什么阻碍吗

(或者我只是在做一些愚蠢的事情——我大约一周前才开始使用javascript)

我也尝试在javascript中对元素调用change()函数

函数addChainOptions(anelementID、nextelementID、listToChangeID、firstToSecond、secondFromFirst)
{var-anelement=document.getElementById(anelementID);
addEventListener(“change”,function()){
var nextelement=document.getElementById(nextelementID);
var listToChange=document.getElementById(listToChangeID);
console.log(this.id+“已更改”);
if(this.value.length==0)
{
nextelement.value=“”;
$(“#”+nextelementID).change();
}
nextelement.disabled=true;
google.script.run.withSuccessHandler(函数(值){
htmlOptions=value.map(函数(r){return';}).join(“”)
listToChange.innerHTML=htmlOptions;
如果(value.length==1){
nextelement.value=值[0];
nextelement.change();
} 
if(value.includes(nextelement.value)=false&&nextelement.value.length>0)
{
nextelement.value=“”;
console.log(nextelement.id+“设置为空-触发更改”)
$(“#”+nextelementID).change();
}
nextelement.removeAttribute(“禁用”);
}).subListLookUp(firstToSecond,secondFromFirst,this.value);
});
};
添加链选项(“productTypesInput01”、“productsInput01”、“productsList01”、“ProductTypeMulti”、“Products”);
添加链选项(“brandsInput01”、“productTypesInput01”、“productTypesList01”、“BrandToProductType”、“ProductTypeFromBrand”);
添加链选项(“类别”、“brandsInput01”、“brandsList01”、“CategoryToBrand”、“BrandFromCategory”);

此时,它正在将下一个设置为空白,并试图触发更改,但什么也没有发生。

您应该尝试收听“输入”事件,而不是“更改”

const firstinput=document.getElementById(“input1”);
const secondinput=document.getElementById(“input2”);
const thirdinput=document.getElementById(“input3”);
函数dispatchEvent(目标,事件类型){
var事件=新事件(事件类型{
泡泡:是的,
可取消:对,
});
目标。调度事件(事件);
}
addEventListener(“输入”,函数(){
secondinput.value=2;
dispatchEvent(第二输入,“输入”);
});
secondinput.addEventListener(“输入”,函数(){
thirdinput.value=3;
//dispatchEvent(第三输入,“输入”);
});


我当然希望更改,因为我需要它等待输入完整值,这样在输入有效输入时,它就不会过于热心地删除链中的单元格。不过,谢谢!它使用helper函数定义单词