For everyone else's benefit:

The magic bit of missing code was
 root.find(".datepicker").removeClass('hasDatepicker').datepicker({
    showOn: 'focus',
    showButtonPanel: true
  });
When I was cloning the datepicker my cloned item already had the
marker CSS class hasDatepicker, so it wasn't properly intializing the
clone since it appeared to be already initialized.  Now I'm just
removing the marker class from the cloned item before initializing and
everything works great.

Thanks,
Jason

On Jan 8, 1:10 pm, Jason <jblumenkra...@gmail.com> wrote:
> I've done some more testing with the current trunk and with the 1.3pre
> jQuery version on the trunk. I've figured out that the exception only
> appears if I clone(true) to clone the event handlers when I duplicate
> my form field, if I just plain clone() and then add my handlers I
> don't see any errors. However, I still don't see any popup on focus,
> so it looks like something still isn't initialized properly. Should I
> enter this into Trac with the updated sample code?
>
> Thanks again,
> Jason
>
> On Jan 6, 10:16 pm, Jason <jblumenkra...@gmail.com> wrote:
>
> > I'm constructing a page that contains a form of tabular data where the
> > user is entering in multiple similar data items, one field of which is
> > a date field that is using the datepicker component. I've placed the
> > form inputs in a row with a fixed id and I've added a button to add a
> > new empty row to the table to handle more inputs. I'm able to clone
> > the DOM and update the inputs and such to post the data properly, but
> > I'm running in to trouble binding the datepicker to the newly created
> > DOM inputs. It looks like everything is being initialized correctly
> > until I go and focus the element, and the process of activating the
> > datepicker is producing a JS error in both Firefox 3.0 and IE6. In
> > Firefox, I'm getting a "inst is undefined" error on ui.datepicker.js:
> > 443, in IE6 it's being manifested as 'settings is null or not an
> > object'. I've attached a fully working example page to reproduce the
> > issue. Am I doing something wrong here or are things not being
> > initialized properly? I've been using 1.6rc4 with jQuery 1.2.6.
>
> > Thanks for the assistance,
> > Jason
>
> > ----------- Example Below ----------------
>
> > <html>
> > <head>
> > <script type="text/javascript" src="http://jquery-ui.googlecode.com/
> > svn/trunk/jquery-1.2.6.js" ></script>
> > <script type="text/javascript" src="http://jquery-ui.googlecode.com/
> > svn/trunk/ui/ui.core.js" ></script>
> > <script type="text/javascript" src="http://jquery-ui.googlecode.com/
> > svn/trunk/ui/ui.datepicker.js" ></script>
> > <link rel="stylesheet" href="http://jquery-ui.googlecode.com/svn/trunk/
> > themes/base/ui.all.css" />
> > <script>
>
> > function addHandlers(root) {
> >   if (root == null)  root = $(document);
>
> >   root.find(".datepicker").datepicker({
> >     showOn: 'focus',
> >     showButtonPanel: true
> >   });
>
> > }
>
> > function addMyrowItem() {
> >   var row = $("#myrow");
> >   var parent = row.parent();
> >   var index = $(parent).children('tr').size();
> >   var newRow = row.clone(true)
> >   newRow.find("[id^=myrow]").attr("id", function() {
> >       return $(this).attr("id").replace('0', index);
> >   });
> >   newRow.find("[name^=myrow]").attr("value","").attr("name", function
> > () {
> >       return $(this).attr("name").replace('0', index);
> >   });
> >   newRow.appendTo(parent);
> >   addHandlers(newRow);
>
> > }
>
> > $(document).ready(function() {
> >   $("#add").click(addMyrowItem);
> >   addHandlers($(document));
>
> > });
>
> > </script>
> > </head>
> > <body>
> >   <h1>Clone test</h1>
> >   <table>
> >     <thead>
> >       <tr>
> >         <th>Date</th>
> >         <th>Description</th>
> >       </tr>
> >     </thead>
> >     <tbody>
> >       <tr id="myrow">
> >         <td><input id="myrow0.date" name="myrow0.date"
> > class="datepicker"/></td>
> >         <td><input id="myrow0.description" name="myrow0.description" /></td>
> >       </tr>
> >     </tbody>
> >     <tfoot>
> >       <tr>
> >         <td colspan="2"><button id="add">Add</button></td>
> >       </tr>
> >     </tfoot>
> >   </table>
> > </body>
> > </html>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"jQuery UI" group.
To post to this group, send email to jquery-ui@googlegroups.com
To unsubscribe from this group, send email to 
jquery-ui+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/jquery-ui?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to