2012-06-21 50 views
0

大家好,javascript/jQuery:使用.each時驗證數字

我正在驗證我的表單,只是檢查數字是否應該是用戶輸入字符串的字段。

在窗體中有一個字段,用戶可以根據需要添加更多字段。

params =''; 
var myAray = []; 
    $(".myfieldThatNeedNumbers").each(function(){ 
     myAray.push($(this).val()); 
    }) 
    params += '&myfieldThatNeedNumbers='+myAray; 

後來PARAMS將被髮送到我的PHP文件感謝阿賈克斯()

我如何可以驗證: 然後在那裏我收集字段中添加這樣的形式被髮送到一個js函數字段「myfieldThatNeedNumbers」中的值是數字嗎?

謝謝!

+0

This [StackOverflow上的回答](http://stackoverflow.com/a/1830844/304588)(在JavaScript中驗證數字 - IsNumeric())可能會有所幫助。 –

回答

1

,或者你可以嘗試

!isNaN(Number(value)) 

編輯: 你的意思是 -

$(".myfieldThatNeedNumbers").each(function(){ 
    var val = $(this).val(); 
    if(!isNaN(Number(val)){ /* invalid number detected */ } 

    myAray.push($(this).val()); 
}) 
+0

這是我正在嘗試,但我不能讓它與我的代碼,每個功能:( – user638009

+0

你的意思是嗎? –

0
$(".myfieldThatNeedNumbers").each(function(){ 
     var value = $(this).val(); 
     if($.isNumeric(value)) { 
      myAray.push(value); 
     } else { 
      alert('Not number') 
     } 
    }); 

瞭解更多關於$.isNumeric()

0
/^\d+$/.text(string) 
數字爲3210

/^\d+\.?\d*$/.test(string) 

浮點數。如果您需要登錄,請在前面添加[+\-]?

對於美元,你可以使用這一天的™

/^[+\-]?\d+(\.\d{2})?/.test(string) 
1
var params = $('.myFieldsThatAreNumber').filter(function() { 
    return $.isNumeric(this.value); 
}); 

優雅的答案。

$.isNumeric需要jQuery 1.7(source for the shim,可能基於this answer)。

此外,$.ajax預計爲data參數的對象,所以你需要以下條件:

var data = { 
    'myFieldsThatAreNumbers': params 
}; 

$.ajax({ 
    data: data, 
}); 

或者只是:

$.ajax({ 
    data: { 
     'myFieldsThatAreNumbers': params 
    }, 
}); 

和jQuery將採取爲您創建的字符串照顧。