0

我正在尝试制作使用一些 html 复选框表单对象的小型应用程序。Whenever any of those checkboxes are checked on or off, it runs a function which then changes the value of a variable unique to each checkbox. 我将如何去做,以便使用函数的参数 - 或其他方式 - 每当单击其中一个复选框时,我都能够定位相应的变量?目前这是我正在尝试完成的。

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>";
}

目前这只是一个粗略的测试,但我想做的是让它,所以我只需要一个函数来处理每个不同的复选框及其变量,而不必为每个复选框创建不同的函数。

4

3 回答 3

4

我明白你想做什么。将变量check改为数组:

var check = [ 0.00, 0.00, 0.00 ];

另外,将参数作为数字传递:

checkClick(1, 5.00)

但是由于数组是 0 索引的,所以从 0 而不是 1 开始:

checkClick(0, 5.00)

以及你在哪里check+numcheck[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

使用数组而不是三个单独的变量。然后根据您传递给函数的数字修改数组元素。

更好的是,尝试使用带有键的 java 对象作为复选框的 id。

于 2012-12-25T14:43:34.677 回答