このフォームにはいくつかの選択ドロップダウンがあり、選択した内容に基づいて他のドロップダウンを表示および非表示にします。値All
を選択すると、geo
セレクトが選択された値に反応しますが、値Test
を選択すると、function family
セレクトは消えません。理由は何ですか?他の選択値に基づいて選択オプションを非表示および表示
また、テストを選択した場合、function family
の値を0
に割り当てる必要があります。ヘルプをいただければ幸いです。
<select name="scope" onchange="javascript:sync_scope()">
<option value="1">All </option>
<option value="10">Test</option>
</select>
Javascriptを:
function sync_scope() {
var scope = document.form.scope.value;
document.form.geo.style.display = (scope == "1") ? "block" : "none";
document.form.function_family.style.display = (scope == "10") ? "none" : "block";
}
HTML
<select name="geo">
<?php foreach ($geos as $geo) : ?>
<option value="<?php echo $geo['id']; ?>"><?php echo utf8_encode($geo['name']); ?></option>
<?php endforeach; ?>
</select>
<select name="function_family" id ="function_family">
<option value="0" <?php selected($function_family, 0); ?>>All functions</option>
<?php foreach ($functions as $function) : ?>
<option value="<?php echo $function['id']; ?>"><?php echo utf8_encode($function['name']); ?></option>
<?php endforeach; ?>
</select>
onSomeEvent = "javascript:doSomething()" 'は冗長です。 'javascript:'は 'href'が実行されるJavaScriptコードであることを示すために' 'で使用されますが、あなたが既にJavaScriptを実行しているイベントハンドラの中にあります。エラーを起こさない唯一の理由は、 'javascript:'がLabelとして扱われます。これは有効な構文です。 –
@NiettheDarkAbsol私はjavascriptを削除しても、あなたのフィードバックに感謝します:それでも選択を隠すことはありません –