Skip to main content

Search and Top Navigation

#6265 closed bug (notabug)

Opened November 05, 2010 10:34AM UTC

Closed November 05, 2010 12:11PM UTC

Last modified October 11, 2012 09:15PM UTC

Javascript error IE6, IE7, FF2, Opera 9 when two elements have the same id attribute

Reported by: wnepnq Owned by:
Priority: major Milestone:
Component: ui.autocomplete Version: 1.8.6
Keywords: Cc:
Blocked by: Blocking:
Description

There is a bug in IE6, IE7, FF2 and Opera 9 that you can see with the following code:

<div id="div1">
	<input type="text" id="test" />
</div>
<div id="div2">
	<input type="text" id="test" />
</div>
<script type="text/JavaScript">
$(function() {

	$("#div1 #test").autocomplete({
		minLength: 0,
		source: [{"value":"1","label":"Test 1","enabled":"1"},{"value":"2","label":"Test 2","enabled":""},{"value":"3","label":"Test 3","enabled":"1"}]
	})
	.data( "autocomplete" )._renderItem = function( ul, item ) {
		var style = '';
		if(item.enabled == false) {
			style= ' style="color: #999;"';
		}
		return $( "<li></li>" )
			.data( "item.autocomplete", item )
			.append( "<a" + style + ">" + item.label + "</a>" )
			.appendTo( ul );
	};
	
	$("#div2 #test").autocomplete({
		minLength: 0,
		source: [{"value":"4","label":"Test 4","enabled":""},{"value":"5","label":"Test 5","enabled":""},{"value":"6","label":"Test 6","enabled":"1"}]
	})
	.data( "autocomplete" )._renderItem = function( ul, item ) {
		var style = '';
		if(item.enabled == false) {
			style= ' style="color: #999;"';
		}
		return $( "<li></li>" )
			.data( "item.autocomplete", item )
			.append( "<a" + style + ">" + item.label + "</a>" )
			.appendTo( ul );
	};

});
</script>

The IE returns the following error:

Error: 'autocomplete(...).data(...)' is null or not an object

In Firefox 2:

Error: $("#div2 #test").autocomplete({minLength:0, source:[{value:"4", label:"Test 4", enabled:""}, {value:"5", label:"Test 5", enabled:""}, {value:"6", label:"Test 6", enabled:"1"}]}).data("autocomplete") has no properties

In Opera 9:

message: Cannot convert undefined or null to Object

The code works only on Safari 3 and Chrome 1, when you test all the oldest browser in the jQuery compatibility list.

Attachments (0)
Change History (2)

Changed November 05, 2010 12:11PM UTC by scottgonzalez comment:1

resolution: → invalid
status: newclosed

IDs must be unique.

Changed October 11, 2012 09:15PM UTC by scottgonzalez comment:2

milestone: TBD

Milestone TBD deleted