Form elements have "defaultValue" and "defaultSelected" attributes.
You might want to explore using those to "reset" the elements.

http://www.irt.org/script/909.htm

Karl Rudd

On Wed, Mar 11, 2009 at 5:58 AM, 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