我想我可以在几分钟内发布对此问题的答案......
这是一个例子:
<script>
function ClearAndRunFuncs(element) {
//Clears answers to elements that are AFTER this element that HAVE an onchange
//Runs the unique onchange function to EACH element after clearing the answer
}
function FuncA(element) {
//does stuff
}
function FuncB(element) {
//does different stuff
}
function FuncC(elements) {
//does different stuff
}
function FuncD(element) {
//does different stuff
}
</script>
<select name=YesNo onchange="FuncA(this);ClearAndRunFuncs(this)">
<option value="">Please Select</option>
<option>Yes</option>
<option>No</option>
</select><br>
<br>
<input name=RandomInputA>
<select name=SomeOtherSelect onchange="FuncB(this);ClearAndRunFuncs(this)">
<option value="">Please Select</option>
<option>Yes</option>
<option>No</option>
</select><br>
<br>
<select name=AnotherSelect onchange="FuncC(this);ClearAndRunFuncs(this)">
<option value="">Please Select</option>
<option>Yes</option>
<option>No</option>
</select><br>
<br>
<input name=RandomInputB onchange="FuncD(this)">
<select name=LastSelect onchange="FuncE(this);ClearAndRunFuncs(this)">
<option value="">Please Select</option>
<option>Yes</option>
<option>No</option>
</select><br>
我想重置初始元素更改后出现的元素的答案并运行其相应的函数(ClearAndRunFuncs(this);)。
如果您想知道原因,这种类型的代码将帮助我向用户提供问题列表,如果他们碰巧不按顺序回答问题,则会迫使他们重新回答可能会出现问题的问题。向不同方向分支,无需重新回答某些不影响分支的字段。
如果你用 jquery 回答这个问题,我会很感激关于发生的事情的额外细节,因为我是 jquery 的新手。最好的答案最好是同时具有 javascript 和 jquery 解决方案,并详细解释 jquery。谢谢大家!
最佳答案
我最终使用了什么:
function ClearAndRunFuncs(element) {
var str = element.nextSibling;
var inputTypes = ["INPUT", "SELECT"];
while(str.name != "Stop") {
if(inputTypes.indexOf(str.tagName) > -1) {
if(str.onchange != null) {
str.value="";
str.onchange();
}
}
var str = str.nextSibling;
}
}
在脚本的末尾我写了一个 <input name=Stop type=hidden>
停止 while 循环。
关于javascript - 如何循环出现在元素之后的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37866070/