2012-11-01 3 views
2

이 내 첫 번째 게시물입니다 그리고 난 두 가지 질문이 있습니다 옵션을 다시 계산하는 방법 : 첫 번째 계산 후 옵션을 변경할 때 선택 하시겠습니까?

  1. 내가 위에서 아래로 (답) 모든 계산 선택

    가 잘 작동합니다. "날짜"를 변경하면 다시 계산되지만 나중에 "box2"를 변경하면 다시 계산되지 않습니다. 해결책이 있습니까?

  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) 
    
    
    }); 
    
    }); 
    
+0

첫 번째 게시물을 작성해 주셔서 감사합니다. 내 anwer가 도움이된다면 답을 표시하십시오. 행운을 빕니다! – ParPar

답변

0

1.

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

2. 에 코드는 좋아 보인다,하지만 당신은 요소의 많은 경우가 없기 때문에, 나는 당신을 건의 할 것 각 선택기를 변수로 정의하는 것을 포기합니다.

+0

아마 PhpStorm/WebStorm과 같은 IDE를 사용하고 있습니다.이 IDE는 동일한 jQuery 선택기를 두 번 이상 사용할 때마다 경고합니다. – Barmar

+0

고마워요! 나는 당신의 조언을 따르고 나의 선별자를 "변화시키지 않을 것"입니다. 내 양식의 처음 두 옵션에 .chained이 필요하므로이를 제거해도 도움이되지 않습니다. – Bastiaan

+0

@ParPar : 작동 중입니다! 감사! – Bastiaan

관련 문제