我想我可以在几分钟内发布答案......
以下是一个例子:
<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的详细解释。谢谢大家!
答案 0 :(得分:0)
我最终使用的是:
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循环。