2016-10-04 2 views
0

이 유형의 코드에서는 isNumeric이 작동하지 않는 것으로 보입니다. 내가 잘못 작성한 것 같습니다. 아무도 나를 도울 수 없으며 내가 뭘 잘못하고 있는지 설명해 줄 수 있니?

$("form.offer_post").submit(function(e) { 
    var name = $('#project_info').val().trim(), 
     price = $.trim($('#offer_price').val().trim()); 

    if (price.length<1) { 
     if(!$.isNumeric($('#offer_price').val())) { 
      alert("Offer MUST be numeric!"); 
      e.preventDefault(); 
      return false; 
     } 
     alert("Please enter the project price"); 
     e.preventDefault(); 
     return false; 
    } 

    if (name.length<1) { 
     alert("Please enter some description for your offer"); 
     e.preventDefault(); 
     return false; 
    } 


}); 

숫자 검사 이외의 모든 것이 완벽하게 작동합니다.

+1

을'price'의 길이가 '0'인 경우에만'$ .isNumeric'을 테스트하고 - 그래서 –

+0

감사 @RoryMcCrossan I를 통과하지 않습니다 저것을 간과했다! –

+0

문제 없습니다. 나는 너를 해답으로 추가했다. –

답변

0

isnan jquery를 사용하여 숫자가 아닌 값을 찾습니다.

예 : - price 값의 길이가 0 때 때는 isNaN ('TEXT') //

0

사실은 당신의 논리는 $.isNumeric 당신만을 검사로 결함이있다. 그러므로 그 상태는 절대로 지나치지 않을 것입니다. 대신,이 같은, 그 조건을 모두 분리 :

$("form.offer_post").submit(function(e) { 
    var name = $('#project_info').val().trim(), 
     price = $('#offer_price').val().trim(); 

    if (price.length < 1) { 
     e.preventDefault(); 
     alert('Please enter the project price'); 
    } 
    if (!$.isNumeric(price)) { 
     e.preventDefault(); 
     alert('Offer MUST be numeric!'); 
    } 
    if (name.length < 1) { 
     e.preventDefault(); 
     alert('Please enter some description for your offer'); 
    } 
});