代码之家  ›  专栏  ›  技术社区  ›  Biarys

如何通过表单更改检测切换

  •  0
  • Biarys  · 技术社区  · 8 年前

    我有一个名为upo的部门,upocost负责表格上的部门。我使用此代码来检测upo是否可见,从而加/减该部分的基本成本。

    $("#showUPO").click(function(){
        $("#sectionUPO").toggle();
        if ($("#sectionUPO").is(":hidden")){
            upoCost-=5;
            $("#upoEmailCost").val(upoCost);
        }
        else {
            upoCost+=5;
            $("#upoEmailCost").val(upoCost);
        }
    })
    

    因此,每次单击按钮时都会更新节的成本,但是表单的总成本不是。

    $("form").on("change", function(){
        var sum = upoCost; // + other costs;
        $("#reqTotalCost").val(sum);
    })
    

    我想知道是否有一种方法可以用类似的.on(“change”)方法捕获它?

    1 回复  |  直到 8 年前
        1
  •  2
  •   Taplar    8 年前
    $("#upoEmailCost").val(upoCost).trigger('change');
    

    尝试手动触发更改事件以冒泡到窗体。对元素的逻辑更改不会固有地生成事件。

    $("#showUPO").click(function(){
        var $upo = $("#sectionUPO").toggle();
    
        if ($upo.is(":hidden")){
            upoCost-=5;
        } else {
            upoCost+=5;
        }
    
        $("#upoEmailCost").val(upoCost).trigger('change');
    });