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