mkmanning's plugin, along with his recommendation to use jQuery's data
method instead of a global object, will work nicely.

To answer my other question re: getting the full html of an element,
there is this plugin: http://plugins.jquery.com/project/outerhtml.

On Mar 10, 1:16 pm, Brad <nrmlcrpt...@gmail.com> wrote:
> I'll have a look. It sounds like this is the basis for what I need.
> Thanks.
>
> On Mar 10, 12:58 pm, mkmanning <michaell...@gmail.com> wrote:
>
> > Haven't tried it but you could use my getAttributes plugin (http://
> > plugins.jquery.com/project/getAttributes) to store the current
> > attributes in the data as I suggested, and then retrieve it later.
> > That would get you not only the value but all other attributes.
>
> > $(document).ready(function(){
> >         $(":input").each(function(){
> >                   $(this).data('orig',$.getAttributes($(this)))
> >         });
>
> >         //to access original attributes of the input later, including value
> >         console.log( $('some_input').data('orig').value );
> >         console.log( $('some_input').data('orig').name);
>
> > });
>
> > On Mar 10, 11:43 am, Brad <nrmlcrpt...@gmail.com> wrote:
>
> > > Thanks for the help on the other question. I missed the part about
> > > reverting the value.
>
> > > Actually I don't think that I need to explicitly store the value. If I
> > > store the value of  $(this) as shown I can later retrieve the value
> > > for a specific field by e.g., calling ...
>
> > > $(origFormData['age']).val()
>
> > > ..., but I need to explain my requirement in more detail.
>
> > > Restoring the input field's value is only one part of the problem.
> > > There are a number of other attributes that might need to be restored.
> > > Depending on how the backend code originally displays the form, a
> > > field can start out enabled or disabled. It can start out with a
> > > special class assignment. These attributes can dynamically change as
> > > the form is used. Therefore resetting a field may involve more than
> > > restoring the field's original value.
>
> > > What I was hoping I could do was store an jQuery object that contained
> > > all of the information about the field and somehow (magically) use
> > > that to overwrite the current representation of that same field.
>
> > > Am I dreaming?
>
> > > Thinking of other ways to solve this problem, is there a way with
> > > jQuery to get the full html of an input element? The .html() method
> > > doesn't do it.
>
> > > On Mar 10, 12:02 pm, MorningZ <morni...@gmail.com> wrote:
>
> > > > You forgot an important part of the line
>
> > > > origFormData[this.name] = $(this);
>
> > > > and this is you need to store the value, so
>
> > > > origFormData[this.name] = $(this).val();
>
> > > > and on your other topic, the code was also provided to revert the
> > > > value back to the saved value
>
> > > > On Mar 10, 1:36 pm, Brad <nrmlcrpt...@gmail.com> wrote:
>
> > > > > I have a need to reset individual form objects to their original
> > > > > state. When the document loads I save the element like this:
>
> > > > >         var origFormData = {};
>
> > > > >         $(document).ready(function(){
>
> > > > >                 // Save original form data for each input field
> > > > >                 $(":input").each(function(){
> > > > >                         origFormData[this.name] = $(this);
> > > > >                 });
>
> > > > >         });
>
> > > > > For example I have a form with fields named name, age, and dept
> > > > > selectable by $("#name"), $("#age"), and $("#dept") respectably.
>
> > > > > How would I go about later restoring/resetting a specific field. Is
> > > > > there a simple way to overwrite the object represented by $("#name)
> > > > > with origFormData.name?

Reply via email to