代码之家  ›  专栏  ›  技术社区  ›  Rzj Hayabusa

如何使用jQuery获取介于两个范围内的值

  •  0
  • Rzj Hayabusa  · 技术社区  · 6 年前

    我有HTML输入名” 部门文件 “上面有regex。

    <input type="text" name="sectoral_txt" class="numberwithdecimals">
    

    类名的jQuery“ 小数位数 "

    const format = (str) => (""+str)                                            
                                                        .replace(/[^\d.-]|(?!^)-/g, "")
                                                        .replace(/^([^.]*\.)(.*$)/, (_, g1, g2) => g1 + g2.replace(/\./g, ''))
                                                        .replace(/\.(\d{2})\d+/, '.$1')
                                                        .replace(/\B(?=(\d{3})+(?!\d))/g, ",")              
            const parse = (str) => str
                                            .replace(/,/g,'')
                                            .replace(/^([^.]*\.)(.*$)/, (_, g1, g2) => g1 + g2.replace(/\./g, ''));
    
            $('input.numberwithdecimals').keyup(function(event) 
            {
                if (event.which >= 37 && event.which <= 40) return;
                $(this).val((i,v) => formatCurrency(v));
            });
    

    当我在上面的输入框中输入数字时,该值将决定评级。索引0将<=4.70,索引1到5在范围内,索引6将>=21.00。等级的类名是( 支票 )部门比率是( 检查rto )

    Rating (check_rtg)          Sectoral Ratio (check_rto)
    
    AAA                         4.70
    AAA                         6.30
    A                           9.10
    BBB                         12.50
    BB                          17.70
    B                           19.60
    CCC                         21.00
    

    我想检查给定的值并使用jQuery显示评分。例如,如果我的输入为10.00,则评级将为BBB,因为它介于12.50和9.10之间

    这是我在jQuery中的当前代码:

    $("#sectoral_txt").keyup(function() {
    
                var selected    = parse( $(this).val() );
    
                if($('#sectoral_txt').val() == '')
                {
                    alert('Empty Field');
                }
                else
                {
                    var rating = 0;
                    $('.check_rto').each(function(index) 
                    {
                        var sectoral_ratio  = parse( $(this).val() );
    
                        // Index 0
                        if( selected <= sectoral_ratio )
                        {               
                            rating = $(".check_rtg").eq(index).val();
                        }
    
                        // Index 1 until 5
                        else if( selected >= sectoral_ratio && selected < sectoral_ratio )
                        {
                            rating = $(".check_rtg").eq(index).val();
                        }
    
                        // Index 6
                        else if( selected >= sectoral_ratio )
                        {
                            rating = $(".check_rtg").eq(index).val();
                        }
                        else
                        {
                            console.log('error');
                        }
                    }); 
                }
            });
    

    但下面的代码总是执行“Index 6”。有人能帮我解决这个问题吗?提前谢谢。

    0 回复  |  直到 6 年前