search the site  

Enter search terms:


subscribe to newsletters   WebReference.com logo   WebReference.com
dev the Web
tip archive  •   about  •   contact  •   jobs  •   sitemap


[previous] [next]

How to Create an Ajax Autocomplete Text Field: Part 10 [con't]

Sr. Web Developer
Professional Technical Resources
US-OR-Portland

Justtechjobs.com Post A Job | Post A Resume

Now we'll include a method for updating the counter, firstRow and lastRow variables when a row is added to the table. The exclamation point (!) before the counter variable is used to check if it's at zero because (Not) zero is evaluated to true. The incrementor (++) operator is evaluated after the !counter, so it has no effect on the if statement. While the firstRow is only set when the counter is at zero, the lastRow is set to the new row every time:

Once again, add the new method to the return object, making sure to include a comma between the two JSON object properties:

We'll add the call to addRow() in the appendFund() function, after all the row's event handlers have been set:

<2>The UP and DOWN Arrow Keys

Clicking on an arrow key when the focus is on the completeField textbox will scroll through the list items like an HTML <select> field. The highlightClass will be turned on for that row so it appears to have the focus, even though the completeField never loses the focus. Add the following function calls to the handleSpecialKeys() function for the UP and DOWN arrow keys:

Back in the RowManager class, we'll add the highlightPreviousRow() method under the other ones:

The highlightPreviousRow() method requires both the non-highlighted and highlighted style classes because any currently highlighted row must be turned off before highlighting another one. The currently highlighted row is stored in the private highlightedRow variable. It's compared to the firstRow using the JavaScript 1.3 strict equality !== (not equals) operator. Using the new operators, objects are deemed to be equal only when they refer to the exact same object. We want to verify that the highlighted row isn't the first one in the list, because we want to turn off the highlighting on that row and apply it to the row that resides directly above the current one. Assuming that the highlighted row isn't the first one in the list, we call the generic highlightRow() method, passing a third parameter which is the reference to the row to be highlighted.

The getPreviousRow() method uses the DOM previousSibling property to obtain a reference to the previous row. There's some logic built-in to the method so it will return the last row if no highlightedRow or previousSibling are found:

The highlightRow() method is called by both the highlightPreviousRow() and highlightNextRow() methods to apply the changes to the currently highlightedRow and new row. The setHighlightRow() setter is called to update the highlightedRow variable:

Here's the code for the setHighlightedRow() method. It's a simple setter method for the highlightedRow variable:

The highlightNextRow() method is almost exactly the same as highlightPreviousRow() except that the highlightedRow is now compared to the lastRow and the result of getNextRow() is sent to the generic highlightRow() method:

Ditto for the getNextRow() method. It closely resembles getPreviousRow(), except that it uses the DOM nextSibling property and returns the firstRow by default:


[previous] [next]

Recent Articles

WebReference.com site name
Working with the DOM Stylesheets Collection
Administering RBAC in PHP 5 CMS Framework
xref: Automatic Cross Referencing Script
internet.com site name
Combine BottomCount() with Other MDX Functions to Add Sophistication
Creating a Daemon with Python
The Coming Voice-over-WiMAX Revolution


internet.comearthweb.comDevx.commediabistro.comGraphics.com

Search:

Jupitermedia Corporation has two divisions: Jupiterimages and JupiterOnlineMedia

Jupitermedia Corporate Info

Legal Notices, Licensing, Reprints, Permissions, Privacy Policy.
Advertise | Newsletters | Tech Jobs | Shopping | E-mail Offers