javascript / jQuery:使用.each时验证数字

时间:2012-06-21 06:44:58

标签: javascript jquery forms validation

大家好,

我正在验证我的表单,只是检查一个数字应该是用户输入字符串的字段。

在表单中有一个字段,用户可以根据需要添加更多字段。 然后将表单发送到js函数,我收集这样添加的字段:

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

由于.ajax()

,后来的params将被发送到我的php文件

如何验证字段“myfieldThatNeedNumbers”中的值是否为数字?

非常感谢!

4 个答案:

答案 0 :(得分:1)

或者你可以尝试

!isNaN(Number(value))

编辑: 你的意思是 -

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

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

答案 1 :(得分: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会为你创建字符串。

答案 2 :(得分:0)

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

详细了解 $.isNumeric()

答案 3 :(得分:0)

/^\d+$/.text(string)

for while numbers。

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

表示浮点数。如果您需要签名,请在前面添加[+\-]?

对于美元,您可以使用

/^[+\-]?\d+(\.\d{2})?/.test(string)