#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.

Source available from github
The Git repository resides at:
http://github.com/madrobby/scriptaculous

Check out the current development trunk with:
git clone git://github.com/madrobby/scriptaculous.git

As script.aculo.us 1.xx is feature-frozen, this development trunk is for bugfixes only.

New development should happen only for
script.aculo.us 2.

Creating a bug report
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, alter the unit tests and show through either changed or added tests how the expected behavior is not occuring.

People watching this ticket

Pages