Home > database >  Exit $('input[name^="myname"]').each( function() {
Exit $('input[name^="myname"]').each( function() {

Time:06-19

I need to exit the javascript but am getting something odd.

There is an array of inputs that this uses.

When the "if" statement is true and "return true" or "return false" is to run, the alert('something') runs and I see the pop-up.

The script continues to execute.

I don't know if it stills executes the "..each" loop. Do you?

This needs to exit the .each loop and script entirely.

If no checkbox is false, then run the alert code outside the ...each(function()...

<input type="checkbox" id="a" name="test[]" onclick="myfunction('a');" />
<input type="checkbox" id="b" name="test[]" onclick="myfunction('b');" />
<input type="checkbox" id="c" name="test[]" onclick="myfunction('c');" />

and the script...

<script>
function myfunction(instuff) {
    $('input[name^="test"]').each(function() {
        if ($(this).prop('checked')  == false) {
            //...run code...
            return true; //return false; acts the same.
        }
    })
    //...run other code...
    alert('something');
}
</script>

Any suggestions is appreciated.

CodePudding user response:

return false from the callback function will stop the .each() loop. But the rest of myfunction() will continue to run.

If you want to stop the rest of the function, you can set a variable that you check after the loop.

function myfunction(instuff) {
  let stop = false;
  $('input[name^="test"]').each(function() {
      if (!$(this).prop('checked')) {
        stop = true;
        return false;
      }
    )
  }
  if (stop) {
    return;
  }
  //...run other code...
  alert('something');
}

  • Related