0

HTMLチェックボックスフォームオブジェクトを使用する小さなアプリケーションを作成しようとしています。これらのチェックボックスのいずれかがオンまたはオフになると、関数が実行され、各チェックボックスに固有の変数の値が変更されます。関数の引数を使用して、または他の手段を使用して、チェックボックスの1つがクリックされるたびに対応する変数をターゲットにできるようにするにはどうすればよいですか? 現在、ここに私が達成しようとしていることがあります。

HTML:

 <form action="" method="get" name="orderForm">
<input name="Test" type="checkbox" value="test" onchange="checkClick('1','5.00')" />Test 1<br />
<input name="Test" type="checkbox" value="test2" onchange="checkBoxClick('2','3.00')" />Test 2 <br />
<input name="Test" type="checkbox" value="test3" onchange="checkBoxClick('3','4.00')" />Test 3 <br />

そしてJavascript:

//set global vars
var check1 = 0.00;
var check2 = 0.00;
var check3 = 0.00;

function checkClick(num,cost) {
    if (check+num == 0.00) {
        check+num = cost;
    }
    else {
        check+num = 0.00;
    }
    checkBoxClick();
}

function checkBoxClick() {
    document.getElementById("otherContainer").innerHTML = "<p>" + check1 + "<br />" + check2 + "<br />" + check3 + "<br />" + check4 + "</p>";
}

現時点では大まかなテストですが、私がやろうとしていることは、それぞれに異なる関数を作成することなく、異なるチェックボックスとその変数のそれぞれを処理する 1 つの関数だけが必要になるようにすることです。

4

3 に答える 3

4

私はあなたがやろうとしていることを見ます。代わりに変数checkを配列にします。

var check = [ 0.00, 0.00, 0.00 ];

また、代わりにパラメーターを数値として渡します。

checkClick(1, 5.00)

ただし、配列のインデックスは 0 であるため、1 ではなく 0 から始めます。

checkClick(0, 5.00)

そして、どこでもcheck+numそれを に置き換えましたcheck[num]

結果は次のとおりです。

var check = [ 0.00, 0.00, 0.00 ];

function checkClick(num, cost) {
    if (check[num] == 0.00) {
        check[num] = cost;
    } else {
        check[num] = 0.00;
    }
    checkBoxClick();
}

function checkBoxClick() {
    document.getElementById("otherContainer").innerHTML = "<p>" + check[1] + "<br />" + check[2] + "<br />" + check[3] + "<br />" + check[4] + "</p>";
}

ところで、変数check4を作成したことがないときに使用していcheck4ます...

于 2012-12-25T13:23:46.757 に答える
0

HTML で:

<input name="Test" type="checkbox" value="test" onchange="checkClick(this,'5.00')" />Test 1<br />
<input name="Test" type="checkbox" value="test2" onchange="checkClick(this,'3.00')" />Test 2 <br />
<input name="Test" type="checkbox" value="test3" onchange="checkClick(this,'4.00')" />Test 3 <br />

Javascript で:

function checkClick(element,cost) {
   switch (element.value) {
      case 'test':
         check1 = (element.checked) ? cost : 0;  
         break;
      case 'test2':
         check2 = (element.checked) ? cost : 0;  
         break;
      case 'test3':
         check3 = (element.checked) ? cost : 0;
         break;
      }
      checkBoxClick();
}
于 2012-12-25T14:37:58.717 に答える
0

3 つの個別の変数の代わりに配列を使用します。次に、関数に渡す数値に基づいて配列要素を変更します。

さらに良いことに、チェックボックスの ID としてキーを持つ Java オブジェクトを使用してみてください。

于 2012-12-25T14:43:34.677 に答える