我有HTML输入名称“ sectoral_txt ”,上面带有正则表达式。
<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。评分的类别名称是( check_rtg ),部门比率是( check_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');
}
});
}
});
但是我下面的代码始终执行“索引6”。有人可以帮我解决这个问题吗?提前致谢。