IE 6 & 7 Button Value Bug

Internet Explorer 6 & 7 return a <button> element's text instead of the value.

by hyperseer

HTML

<button type="submit" value="btnvalue">btntext</button>

JavaScript

$(document).ready(function(){

$().iefixer();

});

(function($){  

    $.fn.iefixer = function(){  

        var ie = $.browser.msie;
        var ver = $.browser.version;
        
            $.fn.origval = $.fn.val;
            $.fn.val = function(value){
                var elem = this[0];
                if(value === undefined){
                    var returnVal = null;
                    if( elem.nodeName.toLowerCase() == 'button' )
                    {
                        returnVal = elem.getAttributeNode("value").nodeValue;
                    } else {
                        returnVal = $(elem).origval();
                    }
                    return returnVal;
                } else {
                    if( elem.nodeName.toLowerCase() == 'button' )
                    {
                        elem.getAttributeNode("value").nodeValue = value;
                    } else {
                        $(elem).origval(value);
                    }
                  
                }
            }
            
$('button').click( function() { 
                
alert( "$(this).val() = " + $(this).val() ); // this works now with above fix
alert( "$(this).attr('value') = " + $(this).attr('value') ); // doesn't work
alert( "this.value = " + this.value ); // straight JS doesn't work
                
                
            });
    
    };
    
})(jQuery);