Thanks for pointing out about that $(this) is pointer.

On Mar 10, 12:50 pm, MorningZ <morni...@gmail.com> wrote:
> Reading up on the documentation would be a good thing, as knowing the
> basics, like knowing what ".html()" does, is absolutely required if
> you want to learn to use this library to the fullest
>
> As for
>
> "If I store the value of  $(this) as shown I can later retrieve the
> value
> for a specific field by e.g., calling .."
>
> No, that's not what is going to happen....
>
> saying:  origFormData["some key"] = $(this);
>
> saves a pointer to that object, not a copy to the object itself.....
> so if later on you change anything on "$(this)", you changed the value
> (but is really just a pointer to the object) of "origFormData["some
> key"]" as well
>
> On Mar 10, 2:43 pm, 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