2016-10-04 90 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

你只是測試'$ .isNumeric'當'price'的長度爲'0' - 所以它永遠不會通過 –

+0

感謝@RoryMcCrossan我忽略那一個! –

+0

沒問題。我將它添加爲你的答案 –

回答

0

使用isnan jquery查找非數字值。

實施例: - isNaN( 'TEXT')//真

0

你的邏輯是有缺陷的,你只測試$.isNumericprice值的長度是0。因此,情況永遠不會通過。取而代之的是,這些條件都分開,就像這樣:

$("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'); 
    } 
});