この例では、ユーザーがドロップダウン フィールドからプロジェクト タイプを選択し、選択したタイプに基づいてさまざまなセクションが非表示/表示されます。以下の配列内の ID はフィールドセット ID であり、値はドロップダウン フィールドで選択されたものです。
ここで問題です。特定のプロジェクトが選択されたときに2 つのセクション/フィールドセットを表示したいクライアントがいます。[このオプションは、さまざまなプロジェクト タイプに適用できます]。たとえば、プロジェクトの種類として「パンフレット」を選択した場合、クライアントはパンフレット セクション/フィールドセットと「簡単な詳細」というフィールドセットを表示することを望んでいます。IDは「556」です。
下の配列に「{id : '556', value:'Brochure'}」を追加すると、「Brief Details」セクション/フィールドセットが表示されますが、この場合にも表示されるはずの「Brochure」フィールドセットが非表示になります. なぜこれが起こっているのかはわかりますが、この JavaScript を機能させる方法がわかりません。
では、以下のコード ベースを使用してこれをコーディングするにはどうすればよいですか [選択したプロジェクト タイプがパンフレットと等しい場合、フィールドセット 556と159 を表示]
var projectTypes = new Array (
{id : '123', value:'Banner'},
{id : '456', value:'Ad'},
{id : '789', value:'Graphics'},
{id : '987', value:'Billboard'},
{id : '654', value:'Booklet'},
{id : '321', value:'Tickets'},
{id : '147', value:'Window'},
{id : '159', value:'Brochure'}
);
/*function below occurs onChange event of project type dropdown:*/
refreshSections(project_type);
/*
* Function used to hide/show sections based on selected project type
*/
function refreshSections(selectedType)
{
for (var i = 0; i < projectTypes.length; i++)
{
if (projectTypes[i].value == selectedType)
{
document.getElementById("section-"+ projectTypes[i].id).style.display = '';
} else {
document.getElementById("section-"+ projectTypes[i].id).style.display = 'none';
}
}
}