0

JavaScript 新手。我在 PHP 中有一个看起来像这样的 while 循环

while ($row_voucher=mysql_fetch_row($risultato_query_voucher)) {    //INFO poche righe sotto, date_format da solo non funziona 
        echo "<tr>\n
                <td id=" . $row_voucher[3] ."><input type='checkbox' value='" . $row_voucher[3] . "' onchange='ControllaCodice(this)' id='" . $row_voucher[6] . "'></td>\n
                <td>" . $row_voucher[2] . "</td>\n
                <td>" . $row_voucher[3] . "</td>\n
                <td>" . date_format( new DateTime($row_voucher[4]), 'd/m/Y' ). "</td>\n
                <td>" . date_format( new DateTime($row_voucher[5]), 'd/m/Y' ). "</td>\n
                <td>" . $row_voucher[6] . "</td>\n
              </tr>\n";
      }

我需要做的是,当您单击复选框时,获取第一个输入类型的值并添加它。由于这是一个 while 循环,这将生成一个包含许多复选框的表,每个复选框都有不同的值。因此,例如,如果您选中 3 个复选框,那么我编写的 javascript 应该采用 3 个值并添加它然后打印它。如果可能的话,我还需要在检查时添加值并在取消选中时减去它。

这是不工作的javascript代码:

<script type='text/javascript'>
   function ControllaCodice(this.value){
   window.alert(this.value);
   }
 </script>";

先感谢您。

4

2 回答 2

0

您没有传递this.value,而是传递this给接受一个属性的函数。变量的名称无关紧要,只有内容才重要。虽然,您不能this在函数中接受,但它是一个保留变量。

此外,它不是必须使用的window.alert,可以只使用alert.

所以,代码是:

... onchange = "ControllaCodice(this)" ...

function ControllaCodice(c){
   alert(c.value);
}
于 2016-07-27T16:00:06.140 回答
0

this.value不是有效的参数名称,并且使用函数所有者作为参数是一个坏主意。相反,让它成为一个普通参数。

function ControllaCodice(input) {
    alert(input.value);
}
于 2016-07-27T16:01:52.203 回答