if (function() === false){ do this}

70,086

Solution 1

This solved my problem. Thanks to who tried to help.

function termos(){
        if ($('.checky3').is(':checked')){
            return 1;
        }
    }

if (termos() !== 1){
        $('.checky3').css('border','solid 1px red');
        return false;
}

Solution 2

From what I understand you want to see if termos() returns true or false and in this case, when it returns false you want to go through a block of code.

You can use falsy / truthy evaluations (http://11heavens.com/falsy-and-truthy-in-javascript)

So you can just say:

if ( termos() ) {
  // when its true
} else {
 // when its false
}

Solution 3

Since you are using a class to set the jQuery object, you will get conflicting results if you have more than one item with that class. I am assuming based on the lack of detail from your question that this might be the case.

Set the id of the checkbox so you can correctly select the element. Also, it is best to set the parent container so that the jQuery isn't searching the entire DOM.

Also, you can reduce your code like so:

function termos(){
  return $('#Agree',"#ParentContainer").is(':checked');
}


if(!termos()){
  alert('please agree with terms');
}
Share:
70,086
Souza
Author by

Souza

Updated on June 07, 2020

Comments

  • Souza
    Souza almost 4 years

    i'm trying to solve this issue, i'm relatively new to javascript, so:

    function termos() gives a true or false result;

    probably the solution to this is simple, but can't get to it. Is it possible to do this? i wrote this code just to exemplify my doubt

    function termos() {
      if($('.terms').is(':checked')) {
        return true;
      } else {
        return false;
      }
    }
    

    can i use

    } else if(termos() === false) {
      alert('please agree with terms');
      return false;
    }
    

    This doesn't work