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);