ユーザーにクラブに参加するかどうかを尋ねるDropDownListがあります。
_Do you want to join the club
Yes
No
_
このリストの下には、デフォルトで無効に設定されている別のリストがあります。このリストには、クラブの部門があります。このリストは、ユーザーが[はい]を選択するまで有効になりません。
次のコードを作成しましたが、解決できなかった問題は、ユーザーが[はい]を選択してから決定を変更し、再び[いいえ]を選択することです。この場合、部門のリストはまだ有効になっています。彼が再び[いいえ]を選択したときに無効にする必要があります。
_<html>
<head>
<script type="text/javascript">
function disable()
{
document.getElementById("mySelect1").disabled=true;
}
function enable()
{
document.getElementById("mySelect1").disabled=false;
}
</script>
</head>
<body>
<form>
<select id="mySelect" onChange="enable();">
<option onSelect="disable();">No</option>
<option onSelect="enable();">Yes</option>
</select>
<select id="mySelect1" disabled="disabled" >
<option>Dep1</option>
<option>Dep2</option>
<option>Dep3</option>
<option>Dep4</option>
</select>
</form>
</body>
</html>
_
onSelect="disable();"
が問題を解決すると思ったが、まだ機能しない。
ありがとう
このようにしますjsFiddleの例.
JavaScript:
function check(elem) {
document.getElementById('mySelect1').disabled = !elem.selectedIndex;
}
HTML:
<form>
<select id="mySelect" onChange="check(this);">
<option>No</option>
<option>Yes</option>
</select>
<select id="mySelect1" disabled="disabled" >
<option>Dep1</option>
<option>Dep2</option>
<option>Dep3</option>
<option>Dep4</option>
</select>
</form>
onchange
の後にonselect
が発生し、基本的にselectを再度有効にしているに違いありません。
onlyonchange
を実装し、選択されているオプションを調べ、それに基づいて有効または無効にすることをお勧めします。
選択したオプションの値を取得するには、次を使用します。
document.getElementById("mySelect").options[document.getElementById("mySelect").selectedIndex].value
各オプションに値を指定していないので、何も得られません.. :(
<select id="mySelect" onChange="enable();">
<option onSelect="disable();" value="no">No</option>
<option onSelect="enable();" value="yes">Yes</option>
</select>
これで、"yes"
または"no"
堅牢なフォームを作成するには、便利な状態でロードし、スクリプトを使用して動作を強化します。以下では、選択がラジオボタンに置き換えられました(ユーザーの生活がずっと楽になります)。
「yes」オプションはデフォルトでチェックされ、選択が有効になっています。ユーザーがいずれかのラジオボタンをチェックすると、それに応じて選択が有効または無効になります。
<form onclick="this.mySelect1.disabled = this.becomeMember[1].checked;" ... >
<input type="radio" name="becomeMember" checked>Yes<br>
<input type="radio" name="becomeMember">No<br>
<select id="mySelect1">
<option>Dep1
<option>Dep2
<option>Dep3
<option>Dep4
</select>
...
</form>
シンプルで簡単:JavaScriptコード:
_function JoinedOrNot(){
var cat = document.getElementById("mySelect");
if(cat.value == "yes"){
document.getElementById("mySelect1").disabled = false;
}else{
document.getElementById("mySelect1").disabled = true;
}
}
_
この行に追加するだけです[onChange = "JoinedOrNot()"]:<select id="mySelect" onchange="JoinedOrNot()">
それはうまくいきます;)
うーん。 onClick()
を使用しないのはなぜですか
<select id="mySelect" onChange="enable();">
<option onClick="disable();">No</option>
<option onClick="enable();">Yes</option>
</select>