2014-05-01 7 views
0

JavaScript를 사용하는 신용 ​​카드 양식으로 작업 중입니다.둘 중 하나가 비어있을 때 두 개의 입력 필드 추가하기

종종 고객이 청구하는 것보다 많은 돈을 보내므로 일을 쉽게하고 잠재적 인 돈을 잃어 버리지 않도록하려면 Price 필드에 청구될 금액이 표시됩니다. 나는 그 가격에 추가 할 수 있도록 Tip 필드를 추가했습니다. 여기

내가 내 팁에서 모든 것을 제거하는 경우

$('.price_tip').keyup(function() { 
    var tip = $('.price_tip').val(); 
    var price = $('.price').val(); 
    var total = parseInt(price) + parseInt(tip); 
    $('.price').val(total); 
}); 

이 거의 제외하고 꽤 잘 작동합니다 ... 내가 지금까지 그들이 팁 값을 입력 할 때 내 가격 필드를 업데이트하는있는 일부 자바 스크립트/jQuery를하다 입력 상자가 있으면 내 총 가격 필드는 NaN이됩니다.

팁 값이 제거되면 내 가격 필드에 항상 내 고객에게 청구하는 것이 표시되는지 확인해야합니다.

여기 제가 도와 드릴 수있는 곳입니까?


UPDATE는

여기

내 최신 시도, 내가 팁 상자에서 모두를 제거 할 수 있습니다 내 총 가격 필드는 이제 NaN로 이동하지 않고, 작동하는 것 같다. 숫자가 아닌 항목이 입력되면 다른 문제가 발생했습니다. 그러면 문제가 해결됩니다.

숫자 값인지 확인하는 방법을 모르겠습니까? 팁 입력 비면

$('.price_tip').keyup(function() { 
    var tip = $('.price_tip').val(); 
    if(tip < 1){ 
    tip = 0; 
    } 
    var price = $('.price').val(); 
    var total = parseInt(price) + parseInt(tip); 
    $('.price').val(total); 
}); 
+1

빈 문자열 인 경우 기본 가격을 0으로 설정하십시오. – elclanrs

답변

1

isNaN (variableName) 함수를 사용해 보셨습니까? 이 함수는 variableName의 내용이 잘못된 숫자인지 여부를 알려줍니다. 그래서,

때는 isNaN ("123")는

희망이

을하는 데 도움이 불법 수를 의미, 진정한 될 것입니다 ("12/3")가 불법 수 때는 isNaN없는 의미 거짓합니다
1

$('.price_tip').val() 빈 문자열을 반환 후속 parseInt는 NaN이 숫자 NaN이 NaN이 결과를 추가 반환한다.

isNaN을 통해 parseInt의 결과를 확인하고 합계에 추가하는 숫자 인 경우에만 확인하십시오. 숫자가 아닌 경우 입력 내용이 잘못되었음을 사용자에게 표시합니다.

관련 문제