#124 new
David Heath

Ajax.AutoCompleter fails if return data is empty

Reported by David Heath | November 19th, 2008 @ 03:00 PM | in 1.8.3 bugfix release

To reproduce,


<input type="text" id="autocompleted" />
<div id="dropdown" />
<img src='spinner.gif' style='display:none' />

<script>
new Ajax.Autocompleter(
               'autocompleted',
               'dropdown',
               'http://some.url/which/returns/empty/data.html',
               {
                   frequency: 0.4,
                   minChars: 2,
                   indicator: 'spinner'
               });
</script>

enter some text in the text box. An ajax request fetches data.html, which is literally 0 bytes long.

ACTUAL RESULT: The spinner image is still displayed even after the ajax response is received.

EXPECT: Spinner gif should be hidden.

NOTES: The problem appears to be because of the call to:

  Element.cleanWhitespace(this.update.down());

on line 269 of controls.js.

In this case, the.updadate.down() will be null, and the call to cleanWhitspace will throw an exception due to an attempt to perform array access [] on null. The exception causes the rest of updateChoices() to be skipped, including the code which stops the spinner.

I suggest changing line 269 to:

  if (this.update.firstChild) {
      Element.cleanWhitespace(this.update.down());
  }

Comments and changes to this ticket

Please Sign in or create a free account to add a new ticket.

With your very own profile, you can contribute to projects, track your activity, watch tickets, receive and update tickets through your email and much more.

New-ticket Create new ticket

Create your profile

Help contribute to this project by taking a few moments to create your personal profile. Create your profile ยป

script.aculo.us is an open-source JavaScript framework for visual effects and interface behaviours.
<br/><b>Source available from github</b>
The Git repository resides at:
<a href="http://github.com/madrobby/scriptaculous">http://github.com/madrobby/scriptaculous</a>
<br/>Check out the current development trunk with:
<code>git clone git://github.com/madrobby/scriptaculous.git</code>
<br/>As <b>script.aculo.us 1.xx is feature-frozen</b>, this development trunk is for <b>bugfixes only</b>.
<br/>New development should happen only for
<b>script.aculo.us 2</b>.
<br/><b>Creating a bug report</b>
When creating a bug report, be sure to include as much relevant information as possible. Post a an example that shows off the problem. Preferably, <b>alter the unit tests</b> and show through either changed or added tests how the expected behavior is not occuring.

People watching this ticket

Pages