Fix for #1944. Added nodeName and tagName to jQuery.props and tests for maxlength, defaultValue, selectedIndex, tagName and nodeName.

This commit is contained in:
Brandon Aaron 2007-11-19 16:07:44 +00:00
parent 2e2a1b8910
commit 5e99807271
3 changed files with 16 additions and 5 deletions

View file

@ -1206,7 +1206,9 @@ jQuery.extend({
selected: "selected", selected: "selected",
maxlength: "maxLength", maxlength: "maxLength",
selectedIndex: "selectedIndex", selectedIndex: "selectedIndex",
defaultValue: "defaultValue" defaultValue: "defaultValue",
tagName: "tagName",
nodeName: "nodeName"
} }
}); });

View file

@ -40,7 +40,7 @@
<ul id="firstUL"></ul> <ul id="firstUL"></ul>
<ol id="empty"></ol> <ol id="empty"></ol>
<form id="form" action="formaction"> <form id="form" action="formaction">
<input type="text" name="action" value="Test" id="text1"/> <input type="text" name="action" value="Test" id="text1" maxlength="30"/>
<input type="text" name="text2" value="Test" id="text2" disabled="disabled"/> <input type="text" name="text2" value="Test" id="text2" disabled="disabled"/>
<input type="radio" name="radio1" id="radio1" value="on"/> <input type="radio" name="radio1" id="radio1" value="on"/>
@ -55,7 +55,7 @@
<button id="button" name="button">Button</button> <button id="button" name="button">Button</button>
<textarea id="area1">foobar</textarea> <textarea id="area1" maxlength="30">foobar</textarea>
<select name="select1" id="select1"> <select name="select1" id="select1">
<option id="option1a" value="">Nothing</option> <option id="option1a" value="">Nothing</option>

View file

@ -223,8 +223,9 @@ test("index(Object)", function() {
}); });
test("attr(String)", function() { test("attr(String)", function() {
expect(13); expect(20);
ok( $('#text1').attr('value') == "Test", 'Check for value attribute' ); ok( $('#text1').attr('value') == "Test", 'Check for value attribute' );
ok( $('#text1').attr('value', "Test2").attr('defaultValue') == "Test", 'Check for defaultValue attribute' );
ok( $('#text1').attr('type') == "text", 'Check for type attribute' ); ok( $('#text1').attr('type') == "text", 'Check for type attribute' );
ok( $('#radio1').attr('type') == "radio", 'Check for type attribute' ); ok( $('#radio1').attr('type') == "radio", 'Check for type attribute' );
ok( $('#check1').attr('type') == "checkbox", 'Check for type attribute' ); ok( $('#check1').attr('type') == "checkbox", 'Check for type attribute' );
@ -236,6 +237,12 @@ test("attr(String)", function() {
ok( $('#name').attr('name') == "name", 'Check for name attribute' ); ok( $('#name').attr('name') == "name", 'Check for name attribute' );
ok( $('#text1').attr('name') == "action", 'Check for name attribute' ); ok( $('#text1').attr('name') == "action", 'Check for name attribute' );
ok( $('#form').attr('action').indexOf("formaction") >= 0, 'Check for action attribute' ); ok( $('#form').attr('action').indexOf("formaction") >= 0, 'Check for action attribute' );
ok( $('#text1').attr('maxlength') == '30', 'Check for maxlength attribute' );
ok( $('#text1').attr('maxLength') == '30', 'Check for maxLength attribute' );
ok( $('#area1').attr('maxLength') == '30', 'Check for maxLength attribute' );
ok( $('#select2').attr('selectedIndex') == 3, 'Check for selectedIndex attribute' );
ok( $('#foo').attr('nodeName') == 'DIV', 'Check for nodeName attribute' );
ok( $('#foo').attr('tagName') == 'DIV', 'Check for tagName attribute' );
$('<a id="tAnchor5"></a>').attr('href', '#5').appendTo('#main'); // using innerHTML in IE causes href attribute to be serialized to the full path $('<a id="tAnchor5"></a>').attr('href', '#5').appendTo('#main'); // using innerHTML in IE causes href attribute to be serialized to the full path
ok( $('#tAnchor5').attr('href') == "#5", 'Check for non-absolute href (an anchor)' ); ok( $('#tAnchor5').attr('href') == "#5", 'Check for non-absolute href (an anchor)' );
@ -269,7 +276,7 @@ test("attr(Hash)", function() {
}); });
test("attr(String, Object)", function() { test("attr(String, Object)", function() {
expect(12); expect(13);
var div = $("div"); var div = $("div");
div.attr("foo", "bar"); div.attr("foo", "bar");
var pass = true; var pass = true;
@ -292,6 +299,8 @@ test("attr(String, Object)", function() {
ok( document.getElementById('text1').readOnly == false, 'Set readonly attribute' ); ok( document.getElementById('text1').readOnly == false, 'Set readonly attribute' );
$("#name").attr('maxlength', '5'); $("#name").attr('maxlength', '5');
ok( document.getElementById('name').maxLength == '5', 'Set maxlength attribute' ); ok( document.getElementById('name').maxLength == '5', 'Set maxlength attribute' );
$("#name").attr('maxLength', '10');
ok( document.getElementById('name').maxLength == '10', 'Set maxlength attribute' );
reset(); reset();