【问题标题】:how to not return nan from answer jquery如何不从回答 jquery 中返回 nan
【发布时间】:2014-10-23 11:13:55
【问题描述】:

我刚刚开始学习 jquery,我试图弄清楚当有空格或字母等时如何摆脱 NAN 并将其更改为空?还有没有更好的方法来写我所做的?

Jquery:

$(document).ready(function(){
    var one = 9; 
    var two = 7;

    $('#first').keyup(function(){ 
        var firstValue = parseFloat($('#first').val()); 
        $('#second').val(firstValue * one / two);
    });

    $('#second').keyup(function(){ 
        var secondValue = parseFloat($('#second').val()); 
        $('#first').val(secondValue / two * one);
    });
});

HTML:

<input id=first></input> <input id=second></input>

【问题讨论】:

标签: jquery nan


【解决方案1】:

在使用之前使用isNaN()测试该值。

$('#first').keyup(function(){ 
    var firstValue = parseFloat($('#first').val());
    if (!isNan(firstValue) {
        $('#second').val(firstValue * one / two);
    }
});

【讨论】:

    【解决方案2】:
    $(document).ready(function(){
    var one = 9; 
    var two = 7;
    
    $('#first').keyup(function(){ 
        var firstValue = parseFloat($('#first').val()); 
        if(!isNaN(firstValue))         // Use 'isNaN' as shown
        $('#second').val(firstValue * one / two);
    });
    
    $('#second').keyup(function(){ 
        var secondValue = parseFloat($('#second').val()); 
        if(!isNaN(secondValue))        // Use 'isNaN' as shown
        $('#first').val(secondValue / two * one);
    });
    });
    

    在此处阅读更多内容:- http://www.w3schools.com/jsref/jsref_isnan.asp

    【讨论】:

      【解决方案3】:

      首先,修复您的 HTML 标记:

      <input type="text" id="first" />
      <input type="text" id="second" />
      

      然后,您可以按照@Barman 的建议进行操作:

      $(document).ready(function(){
          var one = 9; 
          var two = 7;
      
          $('#first').on('keyup', function(){ 
              var firstValue = parseFloat($('#first').val());
      
              if (!isNaN(firstValue)) {
                  $('#second').val(firstValue * one / two);
              }
          });
      
          $('#second').on('keyup', function(){ 
              var secondValue = parseFloat($('#second').val()); 
      
              if (!isNaN(secondValue)) {            
                  $('#first').val(secondValue / two * one);
              }
          });
      });
      

      Demo

      Number.isNaN()

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-11-07
        • 1970-01-01
        • 2017-01-02
        • 1970-01-01
        • 2014-11-16
        • 2012-08-27
        • 2015-08-25
        • 2023-03-05
        相关资源
        最近更新 更多