javascript - 如何取消选择告诉您哪个选项已更改的参数?如何获得正确的 JQuery 和 Javascript 总价?

标签 javascript jquery

您将看到示例代码。

以下是我的问题: -我必须选择有值(value)的服务,但是当我取消服务时,总价格增加而不是减少。 -我测试后取消了所有服务,但是总价还是有。我怎样才能让它回到零?

谢谢! :)

这是我的示例代码:

$(".chzn-select").chosen();
                    $("#cboservices").on("change", function(evt, params){
                        alert($(this).val());
                        //console.log($(this).val());
                        parray = $(this).val();
                        for (pcode in parray) {
                            get_priceList(parray[pcode]);
                            //console.log(sprice * totaltime);
                            tprice = tprice + (sprice * totaltime);
                        }

                        $("#subTotalPrice").html(number_format(tprice, 2, ".", ""));
                        console.log($("#subTotalPrice").html());            
                    });



                }
            },



Below are the sample HTML. I can't paste the whole code because it has limit. Thank you for the quick reply.


reservationDetails =
        '<div id="modal_div" class="widgets">'+
        '        <div class="widget widgetFix">'+
        '            <div class="title"><img src="images/icons/color/user-silhouette-question.png" alt="" class="titleIcon" /><h6>Information</h6></div>'+
        '            <br />'+
        '                <div id="refdiv" class="formRow modalFix">'+
        '                    <label>Reference No:</label>'+
        '                    <div class="formRight"><label class="labelFix inputFix" id="refNoValue">0</label></div>'+
        '                    <div class="clear"></div>'+
        '                </div>'+
        '                <div class="formRow modalFix">'+
        '                    <label>Room No:</label>'+
        '                    <div class="formRight"><label class="labelFix inputFix" id="roomNoValue">0</label></div>'+
        '                    <div class="clear"></div>'+
        '                </div>'+
        '                <div class="formRow modalFix">'+
        '                    <label>Name:</label>'+
        '                    <div class="formRight"><input type="text" id="customerNameValue" name="customerNameValue"/></div>'+
        '                    <div class="clear"></div>'+
        '                </div>'+

        '                <div class="formRow modalFix">'+
        '                <label>Services:</label>'+
        '                    <div class="formRight labelFix">'+
        '                        <select id="cboservices" data-placeholder="Choose your service(s)..." class="chzn-select" multiple="multiple" tabindex="6">'+
        '                       </select>'+  
        '                    </div>'+ 
        '                </div>'+ 

        '                <div class="formRow modalFix">'+
        '                    <label>Price:</label>'+
        '                    <div class="formRight"><label class="labelFix inputFix" id="subTotalPrice">0.00</label></div>'+
        '                    <div class="clear"></div>'+
        '                </div>'+

        '                <div class="clear"></div>'+ 

        '                <div class="formRow modalFix">'+
        '                <label>Personnel:</label>'+
        '                    <div class="formRight labelFix">'+
        '                        <select id="cbopersonnels" data-placeholder="Choose your attendant(s)..." class="chzn-select" multiple="multiple" tabindex="6">'+
        '                       </select>'+  
        '                    </div>'+ 
        '                </div>'+ 
        '                <div class="clear"></div>'+ 

        '                <div class="formRow modalFix">'+
        '                    <label>Date:</label>'+
        '                    <div class="formRight"><label class="labelFix inputFix" id="dateValue">0</label></div>'+
        '                    <div class="clear"></div>'+
        '                </div>'+
        '                <div class="formRow modalFix">'+
        '                     <label>Start Time:</label>'+
        '                     <div class="formRight"><label class="labelFix inputFix" id="startTimeValue">0</label></div>'+
        '                    <div class="clear"></div>'+
        '                </div>'+
        '                <div class="formRow modalFix">'+
        '                    <label>End Time:</label>'+
        '                    <div class="formRight"><label class="labelFix inputFix" id="endTimeValue">0</label></div>'+
        '                    <div class="clear"></div>'+
        '                </div>'+
        '                <div class="formRow modalFix">'+
        '                    <label>Status</label>'+
        '                    <div class="formRight ">'+
        '                        <select id="statusValue" name="statusValue">'+
        '                           <option value="reserved">Reserved</option>'+
        '                           <option value="paid">Paid</option>'+
        '                        </select>'+
        '                    </div>'+
        '                    <div class="clear"></div>'+
        '                </div>'+
        '                <div class="formRow modalFix" style="margin-top:3px">'+
        '                    <label>Remarks</label>'+
        '                    <div id="remarksdiv" class="formRight ">'+
        '                        <textarea id="remarksValue" name="remarksValue" style="resize:none;"></textarea>'+
        '                    </div>'+
        '                    <div class="clear"></div>'+
        '                </div>'+
        '            <br />'+
        '        </div>'+  
        '    <div class="clear"></div>'+
        '</div>';

最佳答案

每次进入循环时,必须先将 amount 值设置为 0。

例如:

$("#cboservices").on("change", function(evt, params){
    alert($(this).val());
    //console.log($(this).val());
    parray = $(this).val();
    tprice = 0; //insert this line <<<<<<<<<<<<<<<<<=====[xxx]
    for (pcode in parray) {
        get_priceList(parray[pcode]);
        //console.log(sprice * totaltime);
        tprice = tprice + (sprice * totaltime);
    }

$("#subTotalPrice").html(number_format(tprice, 2, ".", ""));
console.log($("#subTotalPrice").html()); 


});

另外我想补充一下 jquery 选择的插件功能:

$("cboservices").on("change", function(){});

每次选择和/或取消选择 <option></option> 时都会调用您的 <select></select> 上的元素标签。

关于javascript - 如何取消选择告诉您哪个选项已更改的参数?如何获得正确的 JQuery 和 Javascript 总价?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18914521/

相关文章:

javascript - 在成功函数之外使用通过 AJAX 检索的 JSON 数据

javascript - 在 FireFox 和 IE 8 中打印横向或纵向

javascript - 在php中打印复选框数组的 session 多个值

javascript - 文件输入javascript点击不是由真正的鼠标点击chrome生成的

javascript - 如何在 WebGL 中实现阴影贴图?

javascript - 在 EaselJS 中将矢量绘制到位图

javascript - 为什么 cordova-local-notification-plugin 不起作用(Phonegap、Android)?

php - 在我看来,代码是否太多了? CakePHP/MVC设计模式

jquery - PhoneGap (Cordova.js) 和 JQuery.Ajax 不能一起工作

jquery - 在 jQuery 中访问 session