javascript - 如何将复选框与 jquery 一起使用来获取打印值?

标签 javascript php jquery

当我单击复选框时,我希望将价格值添加到 #totalPrices id 元素中,但我的代码不起作用。

这是一张图片,向您展示它的样子:

enter image description here

<form action="addServicesRequest.php" method="POST">
        <div class="container form-control">
            <h5>Ajoutez des services à votre réservation :</h5>
        <?php while($services = $getServices->fetch()){ ?>
        <div class="text-center">
            <input type="checkbox" name="service" value="<?=$services['price']?>">
            <label><?= $services['service']; ?></label>
            <strong class="priceOfService"><?= $services['price']; ?>€</strong><br>
        </div>
        <hr>
    <?php } ?>

        <div>
            <p>Prix de la réservation : <strong>X€</strong></p>
            <p>Prix des services : <strong id="priceServices">X€</strong></p>
            <h4>Total : <strong id="totalPrices">X€</strong></h4>
            <input type="submit" value="Valider" class="btn btn-dark btn-sm container">
        </div>
        </div>

    </form>

这是 jquery :

var result = 0;
  var countChecked = function() {

  var n = $( "input:checked" ).val();
  $( "#totalPrices" ).text(result = result + n);
};
countChecked();

$( "input[type=checkbox]" ).on( "click", countChecked );

最佳答案

.val()方法返回一个字符串,因此必须解析返回值才能进行算术运算,还需要循环遍历选中的复选框来计算当前复选框的总和,因此您可以使用 each() ,例如:

var countChecked = function() {
  var result = 0;

  $("input[type=checkbox]:checked").each(function() {
    result += parseInt($(this).val());
  })

  $("#totalPrices").text(result);
};

countChecked();

$("input[type=checkbox]").on("click", countChecked);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form action="addServicesRequest.php" method="POST">
  <div class="container form-control">
    <h5>Ajoutez des services à votre réservation :</h5>

    <div class="text-center">
      <input type="checkbox" name="service" value="10">
      <label>service</label>
      <strong class="priceOfService">10 €</strong><br>
    </div>

    <div class="text-center">
      <input type="checkbox" name="service" value="20">
      <label>service</label>
      <strong class="priceOfService">20 €</strong><br>
    </div>

    <hr>
    <div>
      <p>Prix de la réservation : <strong>X€</strong>
       Prix des services : <strong id="priceServices">X€</strong></p>
      <h4>Total : <strong id="totalPrices">X€</strong></h4>
      <input type="button" value="Valider" class="btn btn-dark btn-sm container">
    </div>
  </div>

</form>

关于javascript - 如何将复选框与 jquery 一起使用来获取打印值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55343303/

相关文章:

javascript - setTimeout() 函数不起作用

java - 无法使用php exec函数执行java程序

php - PHP上传文件到FTP服务器的方法

javascript - 如何删除除任何特定 id 之外的元素

javascript - 无法在 div 内移动滚动条

javascript - 当 div 与 js 悬停时更改背景 url

javascript - 眨眼计时器

javascript - 将jQuery变量传递给PHP以进行错误处理

javascript - 我如何在 Angular JS 中等待直到我的 Web 服务返回

php - 为什么 PHP7 在执行这个简单的循环时比 Python3 快这么多?