サンプル コードとデモを以下に示します。私はそれが何をするかを説明しようとします:
id="vanilla-yes"
またはを選択するとid="chocolate-yes"
、id="icecreamcone"
が選択され、無効になります。
両方の選択を解除すると、無効なプロパティが から削除されid="icecreamcone"
ます。
問題:
2 つのうちの 1 つだけを選択解除すると、無効なプロパティも削除されます。
注:またはが選択されている
id="icecreamcone"
場合は、常に無効にする必要があります。id="vanilla-yes"
id="chocolate-yes"
誰でもこの問題を解決する方法を知っていますか?
<ul id="icecream" style="list-style:none;line-height:30px;">
<li>
<select id="icecreamcone">
<option value="addicecreamcone">Would you like an ice cream cone?</option>
<option id="icecreamcone-yes" value="yes">Yes</option>
<option id="icecreamcone-no" value="no">No thanks</option>
</select>
</li>
<li>
<select id="vanilla">
<option value="addvanilla">Would you like to add vanilla ice cream?</option>
<option id="vanilla-yes" value="yes">Yes</option>
<option id="vanilla-no" value="no">No thanks</option>
</select>
</li>
<li>
<select id="chocolate">
<option value="addchocolate">Would you like to add chocolate ice cream?</option>
<option id="chocolate-yes" value="yes">Yes</option>
<option id="chocolate-no" value="no">No thanks</option>
</select>
</li>
<li>
<select id="sprinkles">
<option value="addsprinkles">Would you like to add sprinkles on top?</option>
<option id="sprinkles-yes" value="yes">Yes</option>
<option id="sprinkles-no" value="no">No thanks</option>
</select>
</li>
<li>
<input type="submit" id="submit-icecream" value="Submit Ice Cream" />
</li>
</ul>
<script type="text/javascript">
function observeFlavor(flavor, requires) {
document.getElementById(flavor).onchange = function(){
if(document.getElementById(flavor).options[1].selected == true) {
document.getElementById(requires).options[1].selected = true;
document.getElementById(requires).disabled = true;
}
else{
document.getElementById(requires).disabled = false;
}
}
}
document.getElementById("submit-icecream").onclick = function () {
document.getElementById("icecreamcone").disabled = false;
}
observeFlavor("chocolate","icecreamcone");
observeFlavor("vanilla","icecreamcone");
</script>