diff --git includes/ajax.inc includes/ajax.inc index a119e17..f270a0e 100644 --- includes/ajax.inc +++ includes/ajax.inc @@ -602,12 +602,18 @@ function ajax_pre_render_element($element) { $element['#ajax']['event'] = 'blur'; break; - case 'radio': - case 'checkbox': case 'select': $element['#ajax']['event'] = 'change'; break; + // Ideally we would fire an AJAX request for radios and checkboxes when + // they change, instead of every time they're clicked. However, IE doesn't + // fire change events the same as other browsers. For radio and checkbox + // elements, the change event fires only on blur. The workaround is to + // react on the click event instead of the change event. + // @see http://www.quirksmode.org/dom/events/change.html#t04 + case 'radio': + case 'checkbox': case 'link': $element['#ajax']['event'] = 'click'; break;