单击复选框后,addEventListener不起作用

时间:2019-07-30 11:17:10

标签: javascript php html

我的JavaScript有问题。每次单击复选框时,事件侦听器都无法正常工作。 Screenshot

我将此代码用于2个PHP页面。一个正在工作,而另一个则不工作。这不是外部javascript。应该启用微调器中的按钮和表单中的文本框。

<div class="checkbox-custom checkbox-success">
    <input type="checkbox" name="inclusion[]" id="inclusionName<?php echo $inclusionId ?>" value="<?php echo $inclusionId ?>">
    <label for="<?php echo $inclusionId ?>">&nbsp;&nbsp;&nbsp;<?php echo $inclusionName ?></label>
</div>

我试图更改函数名称,但仍然无法正常工作。

<script>
var inclusionSelect<?php echo $inclusionId ?> = document.getElementById('inclusionName<?php echo $inclusionId ?');

inclusionSelect<?php echo $inclusionId ?>.addEventListener("click", function selectCheck<?php echo $inclusionId ?>() {

if (inclusionSelect<?php echo $inclusionId ?>.checked == true) {
    totalPrice = totalPrice + totalUnitPrice<?php echo $inclusionId ?>;
    document.getElementById("totalPrice").value = totalPrice.toFixed(2);
    document.getElementById('unitCount<?php echo $inclusionId ?>').disabled=false;
    document.getElementById('unitCountUp<?php echo $inclusionId ?>').disabled=false;
    document.getElementById('unitPrice<?php echo $inclusionId ?>').disabled=false;
    document.getElementById('totalUnitPrice<?php echo $inclusionId ?>').disabled=false;


    if (unitCount<?php echo $inclusionId ?> >= 1) {
        document.getElementById('unitCountDown<?php echo $inclusionId ?>').disabled=false;
    }

    if (unitCount<?php echo $inclusionId ?> >= 99) {
        document.getElementById('unitCountUp<?php echo $inclusionId ?>').disabled=true;
    }
}
else {
    totalPrice = totalPrice - totalUnitPrice<?php echo $inclusionId ?>;
    document.getElementById('totalPrice').value = totalPrice.toFixed(2);
    document.getElementById('unitCount<?php echo $inclusionId ?>').disabled=true;
    document.getElementById('unitCountUp<?php echo $inclusionId ?>').disabled=true;
    document.getElementById('unitCountDown<?php echo $inclusionId ?>').disabled=true;
    document.getElementById('unitPrice<?php echo $inclusionId ?>').disabled=true;
    document.getElementById('totalUnitPrice<?php echo $inclusionId ?>').disabled=true;
}

}, false);
</script>

1 个答案:

答案 0 :(得分:0)

(我可以自由地将其发布为答案,虽然不是。我只需要空格。)

请发布此脚本生成的实际HTML,使其更易于调试。

但是我发现尴尬的一件事是:

id="inclusionName<?php echo $inclusionId ?>"

label for="<?php echo $inclusionId ?>"

第二个也应该是"inclusionName<?php echo $inclusionId ?>",以便您的标签匹配。