I'm not sure how tricky it is in JavaScript...

function doit(obj) {
  obj = obj.form;
  i = 0;
  while (obj.elements[i] != null) {
    if (obj.elements[i].type.toLowerCase() != "button") {
      obj.elements[i].value = "";
    }
    i++;
  }
}

Attach this to the onClick event of a button in the form you want to clear, 
passing "this" as the argument, and that should do the trick.  You might have 
to tweak it a little bit (for instance, I'm not sure it will clear file type 
input fields, checkboxes or radios), but it's probably close.  Depends on your 
requirements and whether the round-trip to the server is acceptable or not.  I 
tend to want to avoid any server trips I can, and something like this seems 
like a purely GUI function, so strikes me as a place whether the server doesn't 
need to be involved.

-- 
Frank W. Zammetti
Founder and Chief Software Architect
Omnytex Technologies
http://www.omnytex.com

On Mon, November 29, 2004 11:25 am, Pilgrim, Peter said:
> 
>> -----Original Message-----
>> From: aris [mailto:[EMAIL PROTECTED]
>>
>>
>> Instead of a reset you could use a simple button and the
>> related onClick
>> event to call a javascript that sets all field to "".
>> What do you think about this "workaround"?
>> Take note that it isn't an expected behaviour for a reset
>> button. I suggest
>> you to name such a button with a value different from
>> "reset". What do you
>> think about "wipe" or "erase"?
>> Bye,
>> aris.
>>
>> ----- Original Message -----
>> From: "O. Oke" <[EMAIL PROTECTED]>
>> To: <[EMAIL PROTECTED]>
>> Sent: Monday, November 29, 2004 3:01 PM
>> Subject: Reset button does not clear JSP fields
>>
>>
>> > Please help!
>> >
>> > Background
>> > ==========
>> > I retrieve data from the database, copy the data into
>> > an Action Form, the data is then automatically entered
>> > into corresponding fields.
>> >
>> >
>> > After viewing the data, I want the RESET button to
>> > empty all fields whenever it is clicked.  Presently,
>> > after clicking the RESET button, all fields still have
>> > data.  I believe the fields are repopulated with the
>> > data in the Action Form.
>> >
>> > Does the RESET button have to forward to an Action
>> > class that in turn replaces the relevant Action Form
>> > in the relevant scope with an Action Form that has no
>> > data? If not, can you please tell me the conventional
>> > Struts way of setting all JSP fields to empty.
>> >
> 
> There is no conventional method. I recommend that you
> avoid <html:cancel> because it is slightly confusing.
> 
> The way I did is, is assume that RESET or REVERT button
> is just same behaviour to a SUBMIT button in terms of Struts
> 
> See below
> 
>> > Note:  In the reset method of the Action form, I set
>> > all fields to "" .
>> >
>> > Thank you.
>> >
>> > O. Oke
> 
> 
> ==////==
> 
> What kind of reset functionality do you need ?
> 
> 1. Reset as in "Clear"
> 
> Clear all the input fields in a HTML Form to be blank.
> 
> 2. Reset as in "Revert"
> 
> Change all the input fields back to their original values,
> before the user edited the form.
> 
> 
> With (1) you can write a function with JavaScript to navigate
> your around the DOM for your HTML Form element. You can
> make an Struts Action that clears the ActionForm for you
> (the so-called "going back to the server" option).
> 
> With (2) you can program it with JavaScript, quick tricky
> to do but not impossible. It is much easier to do this
> inside server side Java. You will need to make the ActionForm
> session scope. It will have to have to duplicate beans or
> delegated beans inside, but if you know Commons BeanUtils
> you can copy the value of one bean to another easily.
> 
> I would use delegated beans for this to implement (2) revert
> 
> class EmployeePayrollBean { ... }
> 
> class SomeDahForm extends ActionForm {
> 
>       EmployeePayrollBean     payroll = ... ;
>       EmployeePayrollBean     payroll_backup = ... ;
> 
>       // assume getter/setter methods exists
> }
> 
> In the Action itself
> 
> class SomeTypeOfAction extends Action {
> 
>       public void execute( ... ) {
> 
>               if ( button.equals("REVERT") {
> 
>                       BeanUtils.copyProperties(
>                               yourform.getPayroll(),
>                               yourform.getPayrollBackup() );
>                       // forward request back to JSP/view
>               }
>       }
> }
> 
> Because of the "nested" properties in Struts/Commons BeanUtils/JSTL the
> above shouldn't be a problem for creating a JSP.
> 
> It is trivial to take the Common BeanUtils API to write a ``GenericBean''
> resetter that will reset all properties of a POJO to
> either  0, 0.0F, 0.0, "" , null
> (but be very careful list Java Collections!!!)
> 
> HTH
> 
> --
> Peter Pilgrim
> Operations/IT - Credit Suisse First Boston,
> 10 South Colonnade, London E14 4QJ, United Kingdom
> Tel: +44-(0)207-883-4497
> 
> 
> ==============================================================================
> This message is for the sole use of the intended recipient. If you
> received
> this message in error please delete it and notify us. If this message was
> misdirected, CSFB does not waive any confidentiality or privilege. CSFB
> retains and monitors electronic communications sent through its network.
> Instructions transmitted over this system are not binding on CSFB until
> they
> are confirmed by us. Message transmission is not guaranteed to be secure.
> ==============================================================================
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to