2016-10-04 117 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'); 
    } 
});