Hi there, quick question about onchange method usage. I have a couple of checkboxes and when I check/uncheck them I want a function to be called, therefore I have decided to use the onchange method. But I am not sure I get how this works. Take the following example:
HTML

<input type="checkbox" value="apple" name="fruit" checked="checked" id="apple" onchange="myFunction()"><label for="apple">Apple</label><br>

and here's the function:

function myFunction(){
    var update = false;
    console.log("update is " + update);

}

When the code runs, the message in the console is displayed even if I don't touch the checkbox...how's that possible? I would have thought that myFunction would run only if I had checked/unchecked the box
thanks

Recommended Answers

All 8 Replies

AFAIK onChange isn't triggered properly because the checkbox does not have input focus. You may want to try onClick instead.

thanks pritaeas, but that means that I have to do all the checking in the function (ie if the checkbox is ticked or not). I thought if I use onChange, I don't need to check anything. I am not sure I understand this though, what do you exactly mean by input focus? Also, where is then onChange used?
thanks

Yes, you should check checked yourself. Input focus means that there is a cursor (for text based inputs). OnChange is used in text input, text area, file upload and select boxes. In jQuery this behaviour is extended to radio- and checkboxes. Perhaps that is causing the confusion.

its better to use onclick bro...

ok thanks for clarifying the issue.
I have done what you said

<input type="checkbox" value="apple" name="fruit" checked="checked" id="apple" onClick="myFunction()"><label for="apple">Apple</label><br>

and here's the function:

function myFunction(){
    var update = false;
    console.log("update is " + update);
}

But get this: the console.log output is displayed in the console even if I don't touch the checkbox, so, same problem as before. I get the output when I click on it of course, but when the page load I get it too. What's going on!?

does your checkbox already checked as default???

ehm...and so it is, sorry the script is about 700 lines and I didn't notice the call was also somewhere else, apologies. In that case I will try onchange again, just out of interest
thanks for your help

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.