0

我试图显示alert如果input( inp_val) 的值不在 betweenminvalue并且maxvalue它不起作用,即使值在minvalueand之间,它也会显示警报maxvalue

function compare(e){
    this_id = e.id.slice(10,15);
    inp_val = e.value;
    minvalue = document.getElementById('min_' + this_id).value;
    maxvalue = document.getElementById('max_' + this_id).value;
    console.log(maxvalue);
    console.log(minvalue);
    console.log(inp_val);
    if(inp_val < minvalue){
        alert('Minimum Value: ' + minvalue + 'Input Value: ' + inp_val);
    }
    if(inp_val > maxvalue){
        alert('Maximum Value: ' + maxvalue + ' Input Value: ' + inp_val);
    }
}

我正在调用该函数与一个比较onBlur()

echo '<input class="result_fields" autocomplete="off" onBlur="compare(this)" id="result_inp' . $idc . '" type="text" name="test_res' . $idc . '" />'

我曾尝试在 jQuery 中执行此操作,但同样的错误。Minvalue 和 maxvalue 是input类型hidden,其值存储在 MySQL 上的数据库中,并使用 php 检索,如下所示:

echo '<input type="hidden" value="' . $val_test . '" name="test_name' . $idc . '" id="test_name' . $idc . '" class="testN" />';

php 变量$idc是一个增量函数$idc++

4

3 回答 3

1

您需要对整数值应用<>运算符,以便将字符串值解析为整数然后进行比较。

if(parseInt(inp_val,10) < parseInt(minvalue,10)){
        alert('Minimum Value: ' + minvalue + 'Input Value: ' + inp_val);
    }
于 2013-04-05T20:23:50.847 回答
1

您需要根据从文本框中获得的值解析整数或浮点数

如果它们是整数:

minvalue = document.getElementById('min_' + this_id).value;
maxvalue = document.getElementById('max_' + this_id).value;
minvalue = parseInt(minvalue,10);
maxvalue = parseInt(maxvalue,10);

或者如果它们是浮点数:

minvalue = document.getElementById('min_' + this_id).value;
maxvalue = document.getElementById('max_' + this_id).value;
minvalue = parseFloat(minvalue);
maxvalue = parseFloat(maxvalue);
于 2013-04-05T20:25:08.977 回答
0

试试这个:

if(!(inp_val >= minvalue && inp_val <= maxvalue)){
     alert('Max Val: ' + maxvalue + ' Min Val: ' + minvalue + ' Input Value: ' + inp_val);
于 2013-04-05T20:24:09.423 回答