2012-12-25 47 views
0

我想使小型应用程序使用一些html复选框表单对象。无论何时选中这些复选框,它都会运行一个函数,然后更改每个复选框唯一的变量值。我该如何去做,以便使用函数的参数或其他方式 - 只要单击其中一个复选框,我就可以将相应的变量作为目标。目前这是我正在尝试完成的。使用JavaScript函数参数来影响不同的变量

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

我明白你想要做什么。使可变check一个代替数组:

var check = [ 0.00, 0.00, 0.00 ]; 

此外,通过您的参数作为数字代替:

checkClick(1, 5.00) 

但是因为数组是0索引,开始用0代替1:

checkClick(0, 5.00) 

而且你曾经在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变量...

+0

啊啊漂亮!使它成为一个数组,而不是完全滑落我的思想,非常感谢你! –

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(); 
} 
0

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

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

相关问题