Jquery 如何重新计算选项:在第一次计算后更改选项时选中?

Jquery 如何重新计算选项:在第一次计算后更改选项时选中?,jquery,datepicker,option,selectedvalue,Jquery,Datepicker,Option,Selectedvalue,这是我的第一篇帖子,我有两个问题: 当我选择从上到下回答所有计算时 工作正常。如果我更改日期,它将重新计算,但当我 更改框2之后,它不会重新计算。有解决办法吗 因为这是我的第一个剧本,我想知道它是否好 $(document).ready(function() { $("#box").chained("#box2").change(function() { var selector = function (dateStr) { var d1 = $('#from').datepicker('g

这是我的第一篇帖子,我有两个问题:

当我选择从上到下回答所有计算时 工作正常。如果我更改日期,它将重新计算,但当我 更改框2之后,它不会重新计算。有解决办法吗

因为这是我的第一个剧本,我想知道它是否好

$(document).ready(function() {

$("#box").chained("#box2").change(function() {

var selector = function (dateStr) {
var d1 = $('#from').datepicker('getDate');
var d2 = $('#to').datepicker('getDate');
var diff = 0;

    if (d1 && d2) {
        diff = Math.floor((d2.getTime() - d1.getTime()) / 86400000); // ms per day
    }

    $('#days').val(diff);

var ttl = $('#totaal');
var discon = $('#discount-container');
var disc = $('#discount');
var tax = $('#tax');
var price = $('#box option:selected').attr('data-price');
var total = diff * price;
var tax7 = total*0.07;
var disc75 = total*0.075;
var disc15 = total*0.15;


if (diff >7 && diff <15) {
    discon.show('slow');
    disc.val("- " + disc75.toFixed(2));
    tax.val("+ "+ tax7.toFixed(2));
    ttl.val("Naf. "+  (total+tax7).toFixed(2));
} 
else if (diff >14 ) {
    discon.show('slow');
    disc.val("- " + disc15.toFixed(2));
    tax.val("+ "+ tax7.toFixed(2));
    ttl.val("Naf. "+  (total+tax7).toFixed(2));
} 
else {
    discon.hide('slow');
    tax.val("Naf. "+ tax7.toFixed(2));
    ttl.val("Naf. "+  (total+tax7).toFixed(2));
}
 }  

    $('#from').datepicker({
    dateFormat: 'D dd-mm-yy', 
    minDate: '+1D',
    maxDate: '+2Y',
    changeMonth: true,
    numberOfMonths: 1,
    onClose: function( selectedDate ) {
    $( "#to" ).datepicker( "option", "minDate", selectedDate );
    }
});
$('#to').datepicker({
    dateFormat: 'D dd-mm-yy', 
    minDate: '+1D',
    maxDate: '+2Y',
    changeMonth: true,
    numberOfMonths: 1,
    onClose: function( selectedDate ) {
    $('#from').datepicker( "option", "maxDate", selectedDate );
    }
});

$('#from,#to').change(selector)


});

});
一,

Chang$box.chainedbox2.changefunction{ 至$box,box2.changefunction{

二,。
你的代码看起来不错,但因为你没有太多的元素实例,我建议你放弃将每个选择器定义为变量。

祝贺你在这里发表的第一篇文章。如果我的答案对你有帮助,请将它标记为已回答。祝你好运!也许他正在使用像PhpStorm/WebStorm这样的IDE,它会在你使用同一个jQuery sele时发出警告ctor不止一次。谢谢!我会听从你的建议,取消我的选择器的变量。我需要在表格中的前两个选项中使用.chained,这样删除它对我没有帮助