Ejecute (al menos la parte "Uso" a continuación) después de que haya cargado jQuery y al final de la página o en una declaración DOM ready. Tenga en cuenta que esta solución crea un clon de la selección, que se enviará con los datos del formulario, pero el valor del nombre se ha cambiado para incluir "-clone" al final, así que tenga en cuenta eso, especialmente si está serializando todas las entradas.
Gracias a Craig Hoover.
// Safely use $ (function($) ( $.fn._ie_select=function() ( return $(this).each(function() ( var a = $(this), p = a.parent(); p.css('position','relative'); var o = a.position(), h = a.outerHeight(), l = o.left, t = o.top; var c = a.clone(true); $.data(c,'element',a); c.css(( zIndex : 100, height : h, top : t, left : l, position : 'absolute', width : 'auto', opacity : 0 )).attr(( id : this.id + '-clone', name : this.name + '-clone' )).change(function() ( $.data(c,'element') .val($(this).val()) .trigger('change') )); a.before(c).click(function() ( c.trigger('click'); )); )); // END RETURN ); // END PLUGIN // Usage if ($.browser.msie) ( $('select')._ie_select(); ) ))(jQuery); // END SAFETY