【问题标题】:javascript/jQuery: validating numbers when using .eachjavascript/jQuery:使用 .each 时验证数字
【发布时间】:2012-06-21 06:44:57
【问题描述】:

大家好,

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

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

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

由于 .ajax(),稍后的参数将被发送到我的 php 文件中

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

非常感谢!

【问题讨论】:

标签: javascript jquery forms validation


【解决方案1】:

或者你可以试试

!isNaN(Number(value))

编辑: 你的意思是——

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

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

【讨论】:

  • 这是我正在尝试的,但我无法在每个函数内部使用我的代码:(
【解决方案2】:
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 会为你创建字符串。

【讨论】:

    【解决方案3】:
       $(".myfieldThatNeedNumbers").each(function(){
            var value = $(this).val();
            if($.isNumeric(value)) {
               myAray.push(value);   
            } else {
               alert('Not number')
            }
        });
    

    阅读更多关于$.isNumeric()

    【讨论】:

      【解决方案4】:
      /^\d+$/.text(string)
      

      for while 数字。

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

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

      你可以用美元

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

      【讨论】:

        猜你喜欢
        • 2013-08-02
        • 2011-06-13
        • 2017-08-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-20
        • 2014-02-23
        • 2021-12-20
        相关资源
        最近更新 更多