2017-04-18 38 views
0

我有下面的代碼不工作。jQuery邏輯運算符沒有按預期在jquery中工作

var day = $("#day").val(); 
var week = $("#week").val(); 
var month = $("#month").val(); 

if (day > week) { 
    alert(day > week); 
    $('#error').text("Day Limit Must be smaller than Week Limit"); 
    $('.alert-danger').show(); 
    setTimeout(function() { 
     $(".alert-danger").hide(); 
    }, 5000); 
    return false; 
} 
if (day > month) { 
    $('#error').text("Day Limit Must be smaller than Month Limit"); 
    $('.alert-danger').show(); 
    setTimeout(function() { 
     $(".alert-danger").hide(); 
    }, 5000); 
    return false; 
} 
if (month < week) { 
    $('#error').text("Week Limit Must be smaller than Month Limit and greater than Day Limit"); 
    $('.alert-danger').show(); 
    setTimeout(function() { 
     $(".alert-danger").hide(); 
    }, 5000); 
    return false; 
} 

這裏我得到day=4week=6month=9。在這種情況下,所有if條件都正常工作。但month=10,第二個if條件不起作用(4>10)實際上是false但它變得true

我的邏輯有什麼問題?

+2

'.VAL()'返回字符串前值到整數轉換,則需要將其轉換爲數字 – Satpal

+2

你比較** **字符串。在這裏有一個重複的地方...(在正常情況下'val'返回一個字符串[異常情況:一個空的jQuery對象或jQuery對象中的非字段元素,在這種情況下,您將獲得'undefined']。) –

回答

1

你應該比較

var day = parseInt($("#day").val()); 
var week = parseInt($("#week").val()); 
var month = parseInt($("#month").val()); 
0

您需要首先通過parseint將這些值轉換爲整數,然後將它們作爲數字進行比較。

+0

對於這個問題,我們不需要**又一個**答案。 –