Skip to content
Permalink
Browse files

fix for #3688, setting type attribute on button causes IE to throw error

  • Loading branch information
brandonaaron committed Mar 17, 2009
1 parent aabf635 commit e73990a566fcb2dac71e1a25ec83382645adc5b7
Showing with 13 additions and 3 deletions.
  1. +1 −1 src/core.js
  2. +1 −1 test/index.html
  3. +11 −1 test/unit/core.js
@@ -1004,7 +1004,7 @@ jQuery.extend({
if ( name in elem && notxml && !special ) {
if ( set ){
// We can't allow the type property to be changed (since it causes problems in IE)
if ( name == "type" && jQuery.nodeName( elem, "input" ) && elem.parentNode )
if ( name == "type" && elem.nodeName.match(/(button|input)/i) && elem.parentNode )
throw "type property can't be changed";

elem[ name ] = value;
@@ -70,7 +70,7 @@ <h2 id="userAgent"></h2>
<input type="text" id="name" name="name" value="name" />
<input type="search" id="search" name="search" value="search" />

<button id="button" name="button">Button</button>
<button id="button" name="button" type="button">Button</button>

<textarea id="area1" maxlength="30">foobar</textarea>

@@ -463,7 +463,7 @@ test("attr(Hash)", function() {
});

test("attr(String, Object)", function() {
expect(19);
expect(21);
var div = jQuery("div").attr("foo", "bar"),
fail = false;
for ( var i = 0; i < div.size(); i++ ) {
@@ -537,6 +537,16 @@ test("attr(String, Object)", function() {
}
ok( thrown, "Exception thrown when trying to change type property" );
equals( "checkbox", check.attr('type'), "Verify that you can change the type of an input element that isn't in the DOM" );

var button = jQuery("#button");
var thrown = false;
try {
button.attr('type','submit');
} catch(e) {
thrown = true;
}
ok( thrown, "Exception thrown when trying to change type property" );
equals( "button", button.attr('type'), "Verify that you can't change the type of a button element" );
});

if ( !isLocal ) {

0 comments on commit e73990a

Please sign in to comment.
You can’t perform that action at this time.