Main articles: Client-Side JavaScript, Legacy JavaScript


Why do I get a "Tapestry is undefined" error on form submit? (5.3 and earlier)

This client-side error is clear but can be awkward to solve. It means your browser has not been able to load the tapestry.js file properly. The question is, why? It can be due to multiple reasons, some of them below:

What's the difference between the T5 object and the Tapestry object in the browser? (5.3 and earlier)

Both of these objects are namespaces: containers of functions, constants, and nested namespaces.

The T5 object is a replacement for the Tapestry object, starting in release 5.3. Increasingly, functions defined by the Tapestry object are being replaced with similar or equivalent functions in the T5 object.

This is part of an overall goal, spanning at least two releases of Tapestry, to make Tapestry JavaScript framework agnostic; which is to say, not depend specifically on Prototype or jQuery. Much of the code in the Tapestry object is specifically linked to Prototype and Scriptaculous.

The T5 object represents a stable, documented, set of APIs that are preferred when building components for maximum portability between underlying JavaScript frameworks. In other words, when building component libraries, coding to the T5 object ensures that your component will be useful regardless of whether the final application is built using Prototype, jQuery or something else.