javascript如果声明不起作用

时间:2013-04-05 20:19:43

标签: javascript jquery if-statement

如果alertinput)的值不在inp_valminvalue之间,我试图显示maxvalue,但它不会不起作用,即使值介于minvaluemaxvalue之间,也会显示提醒。

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++

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分: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);

答案 2 :(得分:0)

试试这个:

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