올바른 숫자로 강조 표시되지 않는 이유는 무엇입니까?

미스터 조쉬 피셔

나는 내 제품 페이지에 수량 상자를 가지고 있는데, 수량을 늘리거나 줄이면 상자가 당신이 얻는 할인을 강조하지만 어떤 이유로 든 4에있을 때 3 팩 이상을 강조 표시합니다. > = 3

내 코드 :

           //QUANTITY BUTTONS
    var upBtn = jQuery('#btn-qty-up');
    var downBtn = jQuery('#btn-qty-down');
    var currentQty = document.getElementById('qty_extention'); 

    var priceTable = jQuery('#multibuy table');

    var qty = currentQty.value; 

    downBtn.click(function(){
        var currentQty = document.getElementById('qty_extention'); 
        var qty = currentQty.value; 
        //console.log(qty);
        //console.log('down');
        if(!isNaN( qty ) && qty > 0 ){
            currentQty.value--;


            //VARIBLES DECLARED
            var newPrice = jQuery('#dynamic_pricing').find('h1');
            var screwinput = jQuery('select#attribute186').find(":selected").text();

            var calPrice;
            var QtyPrice;

            //IF QUANTITY IS MORE THAN X THEN PRICE IS X
            switch(true) {
                case (qty <= 2):
                    QtyPrice = '12.95';
                    priceTable.find('tr:first-child').css('background', 'none');
                    break;
                case (qty >=3 && qty <= 4):
                    QtyPrice = '12.30';
                    priceTable.find('tr:first-child').css('background', '#ccc');
                    priceTable.find('tr:nth-child(2)').css('background', 'none');

                    break;
                case (qty >=5 && qty <= 9):
                    QtyPrice = '11.65';
                    priceTable.find('tr:first-child').css('background', 'none');
                    priceTable.find('tr:nth-child(2)').css('background', '#ccc');
                    priceTable.find('tr:nth-child(3)').css('background', 'none');
                    break;
                case (qty >=10):
                    QtyPrice = '10.95';
                    priceTable.find('tr:nth-child(2)').css('background', 'none');
                    priceTable.find('tr:nth-child(3)').css('background', '#ccc');
                    break;
            }

            jQuery('#qty').val(currentQty.value);

            calPrice = (QtyPrice * currentQty.value);
            newPrice.html('£' + calPrice.toFixed(2));

        }         

       return false;
    });

    upBtn.click(function(){
        var currentQty = document.getElementById('qty_extention'); 
        var qty = currentQty.value; 
        //console.log(qty);
        //console.log('up');
        if( !isNaN( qty )) {
            currentQty.value++;

            //VARIBLES DECLARED
            var newPrice = jQuery('#dynamic_pricing').find('h1');
            var screwinput = jQuery('select#attribute186').find(":selected").text();

            var calPrice;
            var QtyPrice;

            //IF QUANTITY IS MORE THAN X THEN PRICE IS X
            switch(true) {
                case (qty <= 2):
                    QtyPrice = '12.95';
                    priceTable.find('tr:first-child').css('background', 'none');
                    break;
                case (qty >=3 && qty <= 4):
                    QtyPrice = '12.30';
                    priceTable.find('tr:first-child').css('background', '#ccc');
                    priceTable.find('tr:nth-child(2)').css('background', 'none');
                    break;
                case (qty >=5 && qty <= 9):
                    QtyPrice = '11.65';
                    priceTable.find('tr:first-child').css('background', 'none');
                    priceTable.find('tr:nth-child(2)').css('background', '#ccc');
                    priceTable.find('tr:nth-child(3)').css('background', 'none');
                    break;
                case (qty >=10):
                    QtyPrice = '10.95';
                    priceTable.find('tr:nth-child(2)').css('background', 'none');
                    priceTable.find('tr:nth-child(3)').css('background', '#ccc');
                    break;
            }

            jQuery('#qty').val(currentQty.value);

            calPrice = (QtyPrice * currentQty.value);
            newPrice.html('£' + calPrice.toFixed(2));
        }

        return false;
    });

여기에 실제로 있습니다.

여기에 이미지 설명 입력

계산이 약간 벗어 났을 수도 있습니다. 어떤 도움을 주시면 대단히 감사하겠습니다.

데이비드 헤드런드

이제 전체 코드를 보았으므로 내 대답을 완전히 다시 작성하십시오.

을 (를) 설정 var qty = currentQty.value하고 그 후에 값을 수정합니다.currentQty.value--;

qty이 시점에서 의 값은 변경되지 않습니다. currentQty.value가격을 계산할 때처럼 스위치에서 직접 액세스 하거나 qty값을 수정 한 후 정의 되었는지 확인하십시오 .

또한 여기에서 많은 양의 코드를 재현하고 있음을 지적합니다. 새로운 수량을 반영하도록 UI를 업데이트하는 코드를 리팩토링하면 처음에이 문제를 피하는 데 도움이되었을 것입니다.

다음과 같은 작업을 고려하십시오.

downBtn.click(function(){
    document.getElementById('qty_extention').value--; 
    updatePrice();
});

upBtn.click(function(){
    document.getElementById('qty_extention').value++; 
    updatePrice();
});

function updatePrice() {
    var qty = document.getElementById('qty_extention').value;
    // set both new price and table highlights here according to updated price
}

경우 #qty_extention읽기 전용되지 않습니다, 당신은 또한 실행해야합니다 updatePrice그것의에 change경우 누군가가 수동으로 버튼을 사용하지 않고 새로운 수량을 입력에서, 이벤트.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

자바 스크립트의 vim 구문 강조가 기본적으로 숫자를 강조하지 않는 이유는 무엇입니까?

분류에서Dev

기본적으로 Vim에서 구문 강조가 표시되지 않는 이유는 무엇입니까?

분류에서Dev

내 기능이 올바른 경로를 참조하지 않는 이유는 무엇입니까?

분류에서Dev

올바른 순서로 인쇄되지 않는 이유는 무엇입니까?

분류에서Dev

사용자 입력이 올바른 것으로 인식되지 않는 이유는 무엇입니까?

분류에서Dev

올바른 위치에 올바른 문자열을 추가하지 않는 이유는 무엇입니까?

분류에서Dev

검색된 데이터가 올바른 숫자를 출력하는 대신 공백으로 표시되는 이유는 무엇입니까?

분류에서Dev

이 angularjs ng-model이 올바른 값으로 업데이트되지 않는 이유는 무엇입니까?

분류에서Dev

올바른 숫자 입력을 유지하는 조건 설정

분류에서Dev

캔버스가 반응 구성 요소에 올바른 채우기로 표시되지 않는 이유는 무엇입니까?

분류에서Dev

내 C 프로그램이 올바른 문자열을 인쇄하지 않는 이유는 무엇입니까?

분류에서Dev

내 C 프로그램이 올바른 문자열을 인쇄하지 않는 이유는 무엇입니까?

분류에서Dev

mktime이 올바른 날짜로 변환되지 않는 이유는 무엇입니까?

분류에서Dev

올바른 텍스트가 표시되지 않는 이유는 무엇입니까?

분류에서Dev

숫자가 표시된 서브 플롯을 올바른 순서로 만드는 방법은 무엇입니까?

분류에서Dev

잠금 기반 프로그램이 올바른 스레드 안전 조각을 구성하지 않는 이유는 무엇입니까?

분류에서Dev

16 진수 형식 숫자가있는 문자열이 올바른 정수 값으로 변환되는 이유는 무엇입니까? PHP

분류에서Dev

이것이 올바른 줄로 점프하지 않는 이유는 무엇입니까?

분류에서Dev

이 SVG가 Google지도 (자바 스크립트)에 표시되지 않는 이유는 무엇입니까?

분류에서Dev

자바 :이 JFrame 버튼이 표시되지 않는 이유는 무엇입니까?

분류에서Dev

내 레이블이 표시되지 않는 이유는 무엇입니까? (자바)

분류에서Dev

자바 스크립트. Google지도가 표시되지 않는 이유는 무엇입니까?

분류에서Dev

숫자를 세는 MySQL 프로 시저를 만드는 올바른 방법은 무엇입니까?

분류에서Dev

자바 : 널 (null)과 같이되지 않습니다 아닌 최종 참조 필드를 보장하는 올바른 방법은 무엇입니까?

분류에서Dev

margin : 0 auto로 바닥 글이 중앙에 표시되지 않는 이유는 무엇입니까?

분류에서Dev

스타일 시트에서 올바른 순서로 선언되지 않은 경우 a : hover가 작동하지 않는 이유는 무엇입니까?

분류에서Dev

내 p : progressBar가 표시되지 않고 숫자 만 표시되는 이유는 무엇입니까?

분류에서Dev

시간대가 숫자로 표시되는 이유는 무엇입니까?

분류에서Dev

putw on은 getw로 올바른 출력을 표시하고 fprintf 및 printf는 scanf로만 올바른 출력을 표시하는 이유는 무엇입니까?

Related 관련 기사

  1. 1

    자바 스크립트의 vim 구문 강조가 기본적으로 숫자를 강조하지 않는 이유는 무엇입니까?

  2. 2

    기본적으로 Vim에서 구문 강조가 표시되지 않는 이유는 무엇입니까?

  3. 3

    내 기능이 올바른 경로를 참조하지 않는 이유는 무엇입니까?

  4. 4

    올바른 순서로 인쇄되지 않는 이유는 무엇입니까?

  5. 5

    사용자 입력이 올바른 것으로 인식되지 않는 이유는 무엇입니까?

  6. 6

    올바른 위치에 올바른 문자열을 추가하지 않는 이유는 무엇입니까?

  7. 7

    검색된 데이터가 올바른 숫자를 출력하는 대신 공백으로 표시되는 이유는 무엇입니까?

  8. 8

    이 angularjs ng-model이 올바른 값으로 업데이트되지 않는 이유는 무엇입니까?

  9. 9

    올바른 숫자 입력을 유지하는 조건 설정

  10. 10

    캔버스가 반응 구성 요소에 올바른 채우기로 표시되지 않는 이유는 무엇입니까?

  11. 11

    내 C 프로그램이 올바른 문자열을 인쇄하지 않는 이유는 무엇입니까?

  12. 12

    내 C 프로그램이 올바른 문자열을 인쇄하지 않는 이유는 무엇입니까?

  13. 13

    mktime이 올바른 날짜로 변환되지 않는 이유는 무엇입니까?

  14. 14

    올바른 텍스트가 표시되지 않는 이유는 무엇입니까?

  15. 15

    숫자가 표시된 서브 플롯을 올바른 순서로 만드는 방법은 무엇입니까?

  16. 16

    잠금 기반 프로그램이 올바른 스레드 안전 조각을 구성하지 않는 이유는 무엇입니까?

  17. 17

    16 진수 형식 숫자가있는 문자열이 올바른 정수 값으로 변환되는 이유는 무엇입니까? PHP

  18. 18

    이것이 올바른 줄로 점프하지 않는 이유는 무엇입니까?

  19. 19

    이 SVG가 Google지도 (자바 스크립트)에 표시되지 않는 이유는 무엇입니까?

  20. 20

    자바 :이 JFrame 버튼이 표시되지 않는 이유는 무엇입니까?

  21. 21

    내 레이블이 표시되지 않는 이유는 무엇입니까? (자바)

  22. 22

    자바 스크립트. Google지도가 표시되지 않는 이유는 무엇입니까?

  23. 23

    숫자를 세는 MySQL 프로 시저를 만드는 올바른 방법은 무엇입니까?

  24. 24

    자바 : 널 (null)과 같이되지 않습니다 아닌 최종 참조 필드를 보장하는 올바른 방법은 무엇입니까?

  25. 25

    margin : 0 auto로 바닥 글이 중앙에 표시되지 않는 이유는 무엇입니까?

  26. 26

    스타일 시트에서 올바른 순서로 선언되지 않은 경우 a : hover가 작동하지 않는 이유는 무엇입니까?

  27. 27

    내 p : progressBar가 표시되지 않고 숫자 만 표시되는 이유는 무엇입니까?

  28. 28

    시간대가 숫자로 표시되는 이유는 무엇입니까?

  29. 29

    putw on은 getw로 올바른 출력을 표시하고 fprintf 및 printf는 scanf로만 올바른 출력을 표시하는 이유는 무엇입니까?

뜨겁다태그

보관