You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by "LOCHART,DOUGLAS E" <do...@cablespeed.com> on 2005/04/12 15:50:37 UTC
Submit component help
Hi all,
I have a requirement that when the user clicks on the
submit button for a form that the button be disabled so
they won't/can't click it again before the next page
appears. Sounds simple enough. I put some javascript
like this:
function disable( input ) {
input.disable=true;
}
To test it out in the html template I put this:
<input type="submit" jwcid="@Submit" tag="Yes"
listener="..." onClick="javascript:disable(this);"/>
This works fine when the submit button is part of a form
that uses the form's listener. But when I have multiple
buttons and need to rely oon the buttons listener and tag
attributes this fails. I made my own Submit component to
add debugging and at first I thought that because it was
disabled the rewind of the form was terminating. It turns
out that the selected property is not being updated
because the parameter for my component ( I assume this
oarameter is the Tag value) is never being set. I think
this is a function of the Direct service but I am still
new to Tapestry.
Can someone shine some light on what it is I have to do to
make this work? I don't see why the Tag attribute is not
being placed in the parameters.
Does my handling of the onclick have to change?
By the way I attempted to make my own Submit component
using a Script but I could not get the initialization
(onload) to do what I wanted. Anyway that is another
question for another time.
Any and all suggestions are quite welcome.
BTW I am using Firefox but IE will be supported as well
Thanks again
Doug Lochart
Cape Computing Corp
---------------------------------------------------------------------
To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tapestry-user-help@jakarta.apache.org
Re: Submit component help
Posted by Paul Ferraro <pm...@columbia.edu>.
When you submit a form via a submit button, the submit button's name and
value are posted along with the form data. The Submit component relies
on this information to determine whether or not to trigger its own
listener. In HTML, when a form element is disabled, its name and value
are not posted - the submit button is no different. You can achieve the
same desired behavior without resorting to disabling the button by using
either a javascript variable defined in the page to store the submitted
state, or by commandeering one of the lesser known/used attributes of
the button (e.g. title, lang, etc.).
e.g.
<input type="submit" onclick="if (!this.title) { this.title =
'Processing...'; return true } return false"/>
Of course, when using a method like this to prevent double submits, you
can't prevent the user from clicking the stop button on their browser.
After hitting the stop button, the user will be unable to submit the
form again since you've effectively disabled the button. The only way
around this is to refresh the page - but of course the user will any
loose data they've typed into the form.
Paul
LOCHART,DOUGLAS E wrote:
> Hi all,
>
> I have a requirement that when the user clicks on the submit button
> for a form that the button be disabled so they won't/can't click it
> again before the next page appears. Sounds simple enough. I put some
> javascript like this:
>
> function disable( input ) {
> input.disable=true;
> }
>
> To test it out in the html template I put this:
>
> <input type="submit" jwcid="@Submit" tag="Yes" listener="..."
> onClick="javascript:disable(this);"/>
>
> This works fine when the submit button is part of a form that uses the
> form's listener. But when I have multiple buttons and need to rely
> oon the buttons listener and tag attributes this fails. I made my own
> Submit component to add debugging and at first I thought that because
> it was disabled the rewind of the form was terminating. It turns out
> that the selected property is not being updated because the parameter
> for my component ( I assume this oarameter is the Tag value) is never
> being set. I think this is a function of the Direct service but I am
> still new to Tapestry.
>
> Can someone shine some light on what it is I have to do to make this
> work? I don't see why the Tag attribute is not being placed in the
> parameters.
> Does my handling of the onclick have to change?
>
> By the way I attempted to make my own Submit component using a Script
> but I could not get the initialization (onload) to do what I wanted.
> Anyway that is another question for another time.
> Any and all suggestions are quite welcome.
>
> BTW I am using Firefox but IE will be supported as well
>
> Thanks again
>
> Doug Lochart
> Cape Computing Corp
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: tapestry-user-help@jakarta.apache.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tapestry-user-help@jakarta.apache.org