2017-04-18 12 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、第2のifは動作していません。は実際には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

**この質問にはまだ**別の回答は必要ありません。 –

関連する問題