2013-06-25 7 views
-1

내 웹 사이트의 일부로 자바 스크립트를 사용하고 있습니다.자바 스크립트 충돌 3 회

var fare = Math.round(fare*100)/100; 
if(document.getElementById("doubleFare").checked) 
{ 
    fare = fare * 2; 
} 

그러나이 스크립트를이 스크립트에서 3 번 사용하면 세 개 중 하나가 작동하지 않습니다.

기타 2 회는 * insted of an *을 사용합니다.

누가 해결할 수 있습니까? 감사합니다

+0

어떤 부품이 고장 나고 어떻게 고장을 판단합니까? 다른 두 번 어떻게 부르니? 매번 var로 '운임'을 재정의하고 있습니까? 위의 예에서는 할당에서 요금을 사용하기 전에 요금을 일부 값으로 정의해야합니다. – scrappedcola

+0

문제의 해결 가능한 문제가 없음을 나타내지는 않습니다. 보유하고있는 문제에 대한 설명과 함께 "효과가 없을 것"에 대한 설명을 게시하십시오. –

+1

사용하기 전에 운임을 정의 하시겠습니까? var fare = Math.round (요금 * 100)/100; NaN 만 반환합니다. 일단 정의되면, 나쁜 형식 인 다른 함수에서 다시 범위를 지정하려는 경우가 아니면 var로 재정의하는 것을 삼가 할 수 있습니다. – scrappedcola

답변

1

당신의 주된 관심사는 당신이 끊임없이 변수를 재정의하고 어떤 경우에는 의도 된 범위를 죽이는 것입니다. 일단 var 변수를 다시 사용하지 마십시오. 예를 들어, 당신은 : 그것은이 경우/다른 블록 내부의 범위를 가지고, 그래서 여기에 문제는 당신이 비용을 재정의한다

if (total<40) 
{ 
    var cost = parseInt(total) * 1.95; 
} 
    else 
{ 
    var cost = parseInt(total) * 1.65; 
} 
var fare = cost; 

. 그러면 costfare에 할당 할 때 실제로는 fare을 if 블록 외부에서 볼 수 없기 때문에 undefined로 설정하는 것입니다. 시도 :

/* code to get check box that indicates prices for 1.50 and 1.60 */ 
    var check150 = document.getElementById("yourCheckIdFor150").checked ? true : false; 
    var check160 = document.getElementById("yourCheckIdFor160").checked ? true : false; 
    var cost = parseInt(total) * 1.65; 
    if(total < 40 && !check150 && !check160) 
    { 
     cost = parseInt(total) * 1.95; 
    }else if(check150 && !check160) 
    { 
     cost = parseInt(total) * 1.50; 
    }else if(!check150 && check160) 
    { 
     cost = parseInt(total) * 1.60; 
    } 

    var fare = cost;  
    fare = Math.round(fare*100)/100; 
    if(document.getElementById("doubleFare").checked) 
    { 
     fare = fare * 2; 
    } 

을 당신은 당신이 요금 및 초기 비용에 대해 별도의 변수를 사용하고 단지 if(check160) 등이있는 경우에만 표시로 떨어져 else if 블록을 깰 필요합니다 다양한 값에 가격을 표시 할 경우 한 번에 하나의 옵션이 작동합니다.

+0

감사합니다. 그러나 다른 가격으로 doublefare의 if (total <40)를 추가하고 싶습니다. 이 작업을 수행하는 방법? – Pnorty6

+0

다른 가격은 무엇을 의미합니까? – scrappedcola

+0

이제는 * 1.65가 40 이하, * 1.95가 40 이상으로 표준입니다. 그게 전부예요.하지만 두 개의 다른 체크 박스를 추가하고 싶습니다 : * 1.50과 * 1.60. 그래서 체크되었을 때 다른 가격은 – Pnorty6