【问题标题】:Integer Validation using javascript使用 javascript 进行整数验证
【发布时间】:2012-01-02 08:03:00
【问题描述】:

我正在使用以下代码来验证该字段是否为空。

<label>Sermon Title</label>
<input class="text-input small-input" type="text" id="sermon_title" name="sermon_title" />
<span id="stitlespansuccess" class="input-notification success png_bg" style="display: none;"></span>
<span id="stitlespanerror" class="input-notification error png_bg" style="display: none;"></span>

    $(document).ready(function () {  
        var submit           = false;
        $('#sermon_title').bind('focusout', function() {
            var sermon_title       = $('#sermon_title').val();
            var pid       = $('#preacher').val();
            if( sermon_title == "") {
                $('#stitlespanerror').html("Title required");
                $('#stitlespanerror').show();
                $('#stitlespansuccess').hide();
                submit = false;
            }
            else
            {
                $('#stitlespanerror').hide();
                $.post("<?= site_url('admin/sermons/uniquetitle/') ?>", { sermon_title: sermon_title,pid:pid },
                function(data){
                    if( "success" == data.trim() ) {
                        $('#stitlespansuccess').show();
                        submit = true;
                    }
                    else
                    {
                        $('#stitlespansuccess').hide();
                        $('#stitlespanerror').html("Title already taken");
                        $('#stitlespanerror').show();
                        submit = false;
                    }
                });
            }
        });
});

我想检查该值是否为整数。

【问题讨论】:

    标签: php javascript validation codeigniter


    【解决方案1】:

    这是检查整数的正确函数(例如:1.0 等)

    function is_int(value){ 
      if((parseFloat(value) == parseInt(value)) && !isNaN(value)){
        return true;
      } else { 
        return false;
      } 
    }
    

    【讨论】:

    • 可以简化为一行函数:return parseFloat(value) === parseInt(value) &amp;&amp; !isNan(value);
    • P.S.注意上面认为“012”不是整数...不要使用parseInt()而不指定基数:parseInt(value,10)
    【解决方案2】:

    试试这个

    如果(isNaN(值))

    希望它会起作用

    【讨论】:

      【解决方案3】:

      您想检查 what 值是否为整数?确定不是讲道标题?那里有很多代码似乎与您的问题完全无关。

      无论如何,假设您要验证用户输入值以确保它是整数,您可以将其转换为数字,然后测试该数字是否等于向下舍入的相同数字:

      function isInteger(val) {
         var n = +val;    // convert with unary plus operator
         return val != "" && n === Math.floor(n);
      }
      

      请注意,空字符串将转换为 0,因此测试 val 不是空字符串。

      潜在问题:以上将“1.000”视为整数 - 这可以接受吗?

      如果您不希望用户输入小数点,另一种方法是使用正则表达式进行验证,确保只输入了数字(无小数点):

      function isInteger(val) {
         return /^-?\d+$/.test(val);
      }
      

      如果您需要将其限制为一定数量的数字,这很容易使用正则表达式:

      // e.g., max four digits, optional minus sign:
      return /^-?\d{1,4}$/.test(val);
      

      (注:`isNaN() is "broken".)

      【讨论】:

      • 当然。我的意思是,如果你提供一个例子,试着让它与手头的问题相关。
      猜你喜欢
      • 2015-06-29
      • 1970-01-01
      • 2011-08-28
      • 1970-01-01
      • 1970-01-01
      • 2013-02-20
      • 1970-01-01
      • 2013-10-25
      • 2015-06-25
      相关资源
      最近更新 更多