0

基本的に、私は複数のオプションを含むフォームを持っています。これらの各オプションは、特定の結果が得られるまで結果をフィルタリングします。これを行うにはjavascriptを使用します。

私の質問は、複数のチェックボックスが付いたフォームにパーツがあることです。それぞれがチェックされているかどうかをチェックし、チェックされたときにいくつかのデータを表示することです。しかし、複数のチェックが可能です。

私はどんな種類のフレームワークも使用できないので、それを提案しないでください、そして私はコードの大きなブロック(よく説明されたコードのみ)を望んでいません、私はこれを私に説明する必要があり、それから私は自分のコードを書くことができます(私は学ぶことができます)、私はこれについてどうやって行くのか全く分かりません。

必要なJavascriptの説明が役立つでしょう。

編集:これは私がこれまでに持っているコードです:

function jobs() {
    var shownursing = document.getElementById('nursing-block');

    if (document.getElementsByName("nursing")[0].checked) {
        console.log("hi")
        shownursing.style.display = 'block';
        return true;
    } else { 
        console.log("no")
        shownursing.style.display = 'none';
        return false;
    }
}

jobs();
4

1 に答える 1

1

基本的に、チェックボックスがチェックされているときに何らかの機能を発生させたいと考えていますよね? これに対する最善の策は、チェックボックスがチェックされたときに呼び出す関数 (または関数のセット) を作成することです。その関数は、チェックボックスに応じて何を表示するかを決定します。

既に持っているコードとの主な違いは、チェックされているチェックボックスのアクションに関数呼び出しを添付する必要があることだと思います。jQuery やその他のフレームワークを使用せずにこの方法で関数をアタッチするには、チェックボックスの html に onClick 属性を含めることができます。

<input type="checkbox" id="ch1" onclick="jobs();" />

または、ボタンをクリックしたときに関数を実行する場合は、そのボタンの にアタッチできonclickます。または、ページの読み込み時に実行する場合は、関数の外側に次のコードを含めることで実行できます。

window.onload=jobs;

上記を組み合わせて、ページが読み込まれたときと、チェックボックスまたはボタンをクリックしたときに関数を実行することもできます。

jobs()では、DOM 要素にアクセスしてプロパティを取得することで、チェックボックスの値を確認でき.checkedます。チェックボックスごとに個別の ID を持ち、そのようにチェックする方がはるかに良い方法であることに注意してください (長期的には、次の結果の配列を使用するよりもバグがはるかに少なくなりますdocument.getElementsByName():

if (document.getElementById("ch1").checked)
{
   //take actions related to this checkbox being checked
}

チェックするチェックボックスが複数あるため、そのようなifステートメントがいくつかあります(それらが独立していると仮定します)。それらを 1 つの単位として処理する必要がある場合 (つまり、2 つのチェックボックスをオンにすることは、それぞれを個別にオンにすることの組み合わせとは異なることを行う)、それらのifステートメント内でいくつかの制御変数を設定し、次に switch ステートメントを使用することができます。最後に実行を制御します。

于 2013-03-20T14:27:50.140 に答える