Javascript 页面加载时如何计算已选中框的值?

Javascript 页面加载时如何计算已选中框的值?,javascript,Javascript,我有一页是关于电影院座位模型的。用户选择座位,并实时显示价格。下一步是去结帐,但如果用户改变主意,想要换到不同的座位,并在浏览器上单击“返回”,则返回座位选择页面。通过使用会话id检查,我成功地保留了选定的座位。但无法保持价格节约 $(document).ready(function () { var $inputs = $('.seats-c'); var $output_seats = $('#span-seats'); var $output_price = $('#span-price'

我有一页是关于电影院座位模型的。用户选择座位,并实时显示价格。下一步是去结帐,但如果用户改变主意,想要换到不同的座位,并在浏览器上单击“返回”,则返回座位选择页面。通过使用会话id检查,我成功地保留了选定的座位。但无法保持价格节约

$(document).ready(function () {
var $inputs = $('.seats-c');
var $output_seats = $('#span-seats');
var $output_price = $('#span-price');
var $output_taxes = $('#span-taxes');
var $output_tot_price = $('#span-tot-price');
var input_val;
var seats_list_json;
var seats_list;
var seats;
var price;
var taxes;
var last_entered;
$inputs.on('click', function () {
    last_entered = this;
});
$inputs.on('change', function () {
    seats_list_json = $('#seatsList').val();
    seats_list = JSON.parse(seats_list_json);
    seats = 0;
    price = 0;
    taxes = 13; //%
    $inputs.each(function () {
        input_val = this.value;
        if (this.checked) {
            seats += 1;
            $.each(seats_list, function (key, value) {
                if (input_val === key) {
                    price += value;
                }
            });
        }
        if (seats > 4) {
            $(last_entered).prop("checked", false);
            box(null, "Warning !", "Maximum amount is 4 seats per transaction", "alert-box");
        }
    });
    $output_seats.html(seats);
    $output_price.html(price);
    $output_taxes.html(taxes + "% taxes = $" + (price * (taxes / 100)).toFixed(2));
    $output_tot_price.html((price * ((taxes / 100) + 1)).toFixed(2));
}); });

我想你的问题还不清楚。但根据我对以下内容的理解,您可以实施更改

将您的计算价格与功能分开。如下所示
calculatePrice

现在,在复选框的
pageLoad
change
上调用相同的函数

pageLoad
上,也调用相同的函数以获取
document.ready上的更新价格

下面的示例代码可以帮助您

$(文档).ready(函数(){
变量$inputs=$('.seats-c');
变量$output_seats=$(“#span seats”);
变量$output_price=$(“#span price”);
var$产出税=$('跨度税');
变量$output_tot_price=$(“#span tot price”);
var输入值;
可变座位列表;
无功功率表;
var席位;
var价格;
风险价值税;
上次输入的var;
座位列表=[{
Chu 1:100
},
{
Chu 2:20
},
{
丘3:20
},
{
Chu 4:20
},
{
Chu 5:20
}
];
函数calculatePrice(){
座位=0;
价格=0;
税款=13;//%
$inputs.each(函数(){
输入值=this.id;
如果(选中此项){
席位+=1个;;
$。每个(座椅列表、功能(键、值){
if(value.hasOwnProperty(输入值)){
价格+=价值[输入值];
}
});
}
});
$output_seats.html(seats);
$output_price.html(price);
$output_taxes.html(taxes+%taxes=$”+(price*(taxes/100)).toFixed(2));
$output_tot_price.html((price*((taxes/100)+1)).toFixed(2));
}
计算价格();
$inputs.on('单击',函数()){
上次输入=此;
});
$inputs.on('change',function(){
计算价格();
});
});


座位-
-价格-
-税收-
-总计-

我想你的问题还不清楚。但根据我对以下内容的理解,您可以实施更改

将您的计算价格与功能分开。如下所示
calculatePrice

现在,在复选框的
pageLoad
change
上调用相同的函数

pageLoad
上,也调用相同的函数以获取
document.ready上的更新价格

下面的示例代码可以帮助您

$(文档).ready(函数(){
变量$inputs=$('.seats-c');
变量$output_seats=$(“#span seats”);
变量$output_price=$(“#span price”);
var$产出税=$('跨度税');
变量$output_tot_price=$(“#span tot price”);
var输入值;
可变座位列表;
无功功率表;
var席位;
var价格;
风险价值税;
上次输入的var;
座位列表=[{
Chu 1:100
},
{
Chu 2:20
},
{
丘3:20
},
{
Chu 4:20
},
{
Chu 5:20
}
];
函数calculatePrice(){
座位=0;
价格=0;
税款=13;//%
$inputs.each(函数(){
输入值=this.id;
如果(选中此项){
席位+=1个;;
$。每个(座椅列表、功能(键、值){
if(value.hasOwnProperty(输入值)){
价格+=价值[输入值];
}
});
}
});
$output_seats.html(seats);
$output_price.html(price);
$output_taxes.html(taxes+%taxes=$”+(price*(taxes/100)).toFixed(2));
$output_tot_price.html((price*((taxes/100)+1)).toFixed(2));
}
计算价格();
$inputs.on('单击',函数()){
上次输入=此;
});
$inputs.on('change',function(){
计算价格();
});
});


座位-
-价格-
-税收-
-总计-

seats\u list\u json保存的是什么类型的数据?它保存对象(键、值)。如果您可以提供此变量保存的一些示例数据,这将很好,它将帮助其他人在他们的机器上运行您的代码。它通过jsp pagePut console.log(seats\u list\u json)来自Java Servlet,在解析之前,它将在控制台中打印数据,然后你可以从那里复制它。seats\u list\u json保存的是什么类型的数据?它保存的是对象(键、值)。如果你能提供这个变量保存的一些样本数据就好了,它将帮助其他人在他们的机器上运行你的代码。它在解析之前通过jsp pagePut console.log(seats\u list\u json)来自Java Servlet,它将在控制台中打印数据,然后您可以从那里复制数据。伟大的thx Yogen,您解决了它。它现在可以工作了,你做对了,我需要做单独的函数,从ready和change调用它queries@Roms很高兴这对你有帮助伟大的thx瑜伽士,你解决了它。它现在可以工作了,你做对了,我需要做单独的函数,从ready和change调用它queries@Roms很高兴它能帮助你