Skip to content Skip to sidebar Skip to footer

How To Use Comparison Operator In Javascript For Two Input Values

I want to compare the two input values, just try in javascript, but it's not working fine. I'm using the following code function check_closing() { var opening = $('#opening').val(

Solution 1:

You're comparing the strings instead of integers, so you need to convert the strings to integers. Since as strings, '8541' > '8241'

>>>'8541' > '8241'
true
>>>'954' > '8241'
true

>>>8541 > 8241
true
>>>954 > 8241
false

So you want:

function check_closing()
{
    var opening = parseInt($('#opening').val());
    var closing = parseInt($('#closing').val());
    if(opening > closing)
    {
        alert('Opening is greater than Closing. Please enter the correct value');
        $('#closing').val('');
    }
}

To add more to why exactly this happened, in case you're interested: Strings are compared character by character, iirc. So the '9' is greater than the '8' but the '8241' is less than '8541' because '2' is less than '5'.


Solution 2:

The values of input elements are always strings. To compare them as numbers, you must convert them to numbers. You can do that with:

  • parseInt if they're whole numbers and you want to specify the number base and stop parsing at the first non-numeric character

    Example:

    var opening = parseInt($('#opening').val(), 10);
    // This is the number base, usually 10 ---^^^^
    
  • parseFloat if they're decimal fractional numbers

    Example:

    var opening = parseFloat($('#opening').val()); // Always base 10
    
  • The + if you want JavaScript to guess the number base, and give you NaN if there's a non-numeric character

    Example:

    var opening = +$('#opening').val();
    //            ^---- it's hiding here
    

...and a few others.


Solution 3:

First of all you you need to convert the strings into integers

function check_closing(){
    var opening = parseInt($('#opening').val(), 10);
    var closing = parseInt($('#closing').val(), 10);
    if(opening > closing){
        alert('Opening is greater than Closing. Please enter the correct value');
        $('#closing').val('');
    }
}

Solution 4:

Convert the strings to integers before comparison:

function check_closing()
{
    var opening = $('#opening').val();
    var closing = $('#closing').val();
    if(parseInt(opening) > parseInt(closing))
    {
        alert('Opening is greater than Closing. Please enter the correct value');
        $('#closing').val('');
    }
}

Post a Comment for "How To Use Comparison Operator In Javascript For Two Input Values"