Hi; Is there a way I could phrase this in a more enticing way?
On Dec 6, 2007 9:22 PM, Lee Hinde <[EMAIL PROTECTED]> wrote: > Hi; > > I've sussed out a solution with cloning rows that are are part of a > form submit and I'd appreciate any feedback you might have. > > Here's an image to follow along with: > http://www.hinde.net/images/jqueryhelpgraph.png > > I have an application where users enroll in a class. After a search is > done, a list of matching classes is presented. If they click a > checkbox, a list of family members is presented, via a select, and > the user can chose the family member to enroll in the class. It's not > unusual to enroll two kids in the same sort of class, but different > sessions for different age groups... > > But what if two family members want to take the same class? Up to now, > the user would have to finish enrolling the first person and then > start over to add the second. > > jQuery clone(true) to the rescue. > > I've added a fam fam "add" button and some jQuery clone magic and now > the user can duplicate a class and enroll as 2nd person in the same > class with a single form submit. > > But that's a problem on with the form submit. I've got two field sets > (the checkbox to indicate the class and the select to indicate the > user) with the same id & name. > > This is what I've come up with: > > function addRow(me){//'me' is the button to add a row. > counter++; > var myId = $(me).attr("id"); > var myDashLoc = myId.indexOf("_")+1;//This should > always be '3' > > var cbid = myId.slice(myDashLoc); > var newri = "ri"+counter+"_"+cbid+"clone"; > > > $("#ri_"+cbid).clone(true).insertBefore($("#ri_"+cbid)).attr("id",newri);//clone > the row, insert the clone before the base row and set the clone's id > to 'newri' > > $("#ri_"+cbid+" > td > > input:checkbox").attr("id","ssclone"+counter+"_"+cbid);//rename id for > the checkbox > $("#ri_"+cbid+" > td > > input:checkbox").attr("name","ssclone"+counter+"_"+cbid);//rename the > name for the checkbox > > $("#ri_"+cbid+" td:nth-child(2) span > select").attr("id","enclone"+counter+"_"+cbid);//rename id for the > select > $("#ri_"+cbid+" td:nth-child(2) span > select").attr("name","enclone"+counter+"_"+cbid);//rename name for the > select > > /* > This leaves the clone with the original's name. The > buttons all > keep the same id, but they all point to the same clone, so it appears > to be working. > > */ > > }; > > Does this seem like a reasonable approach? I had a heck of a time with > the selectors, was there an easier way? > > Thanks. > > - Lee >