Reputation: 2509
I want to detect if user checks or unchecks a check box within an iframe and set a flag like so. But it does not seem to work as expected. Any pointers on the error on the code?
jQuery("#frameName").contents().find(":checkbox").bind('change', function(){
val = true;
alert("changed");
});
But I can detect if a checkbox is checked by using
var val = jQuery("#frameName").contents().find(":checkbox").is(":checked");
I want to be able to detect any state change on a checkbox and set the flag.
Upvotes: 16
Views: 29521
Reputation: 38103
Bind to the click event, not change. Checkboxes work on click.
EDIT: It appears in modern browsers that changing the state of a checkbox, whether via mouse or keyboard, triggers at least the click
and the change
events.
See a jsFiddle demo I built for proof. Using the keyboard also triggers some key-related events, in addition to click
and change
.
Upvotes: 3
Reputation: 348972
Use the checked
DOM property to check whether a checkbox is checked or not. The change
event is always triggered on change, even if the checkbox gets unchecked.
jQuery("#frameName").contents().find(":checkbox").bind('change', function(){
val = this.checked; //<---
alert("changed");
});
Upvotes: 25