javascript If语句不工作

javascript If语句不工作,javascript,jquery,if-statement,Javascript,Jquery,If Statement,我试图显示警报如果输入(inp_val)的值不在minvalue和maxvalue之间,但它不起作用,即使值在minvalue和maxvalue之间,它也会显示警报 function compare(e){ this_id = e.id.slice(10,15); inp_val = e.value; minvalue = document.getElementById('min_' + this_id).value; maxvalue = document.ge

我试图显示
警报
如果
输入
inp_val
)的值不在
minvalue
maxvalue
之间,但它不起作用,即使值在
minvalue
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);
    }
}
我曾尝试在jQuery中这样做,但都是相同的错误。 Minvalue和maxvalue是
输入
类型
隐藏
,其值存储在MySQL上的数据库中,并使用php检索,如下所示:

echo '<input type="hidden" value="' . $val_test . '" name="test_name' . $idc . '" id="test_name' . $idc . '" class="testN" />';
echo';
php变量
$idc
是一个增量函数
$idc++

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

if(parseInt(inp_val,10) < parseInt(minvalue,10)){
        alert('Minimum Value: ' + minvalue + 'Input Value: ' + inp_val);
    }
if(parseInt(inp_val,10)
试试这个:

if(!(inp_val >= minvalue && inp_val <= maxvalue)){
     alert('Max Val: ' + maxvalue + ' Min Val: ' + minvalue + ' Input Value: ' + inp_val);

如果(!(inp_val>=minvalue&&inp_val您需要从文本框中获取的值解析整数或浮点值

如果它们是整数:

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);

对所有值(字符串值)使用parseInt(x)…@RoyiNamir:不要忘记基数
parseInt(x,10)
:-P@RocketHazmat是的,(当“使用严格”时不需要)而且,chrome(26)似乎已经处理了这个问题。parseInt('010')=10和parseInt(010)=8。它正在工作!我不知道parseInt(),谢谢。您应该真正使用
parseInt(inp\u val,10)
。您应该真正使用
parseInt(minvalue,10)
。还有一些方法也可以帮助您。。。
minvalue = document.getElementById('min_' + this_id).value;
maxvalue = document.getElementById('max_' + this_id).value;
minvalue = parseFloat(minvalue);
maxvalue = parseFloat(maxvalue);