Webprogr: Link with automatic submit

Gregor Horvath gh at gregor-horvath.com
Fri Oct 20 05:40:15 EDT 2006


Hi,

As I am no expert web programmer I thought I'd better ask the experts if
there is a simpler or better solution to my problem than the one I am
thinking of. (using TurboGears)

The problem
-----------

I have a form. Ok. you can submit, validate it etc.
Now I have a link on that form to another page.
What I want is that the form gets automatically submitted and validated
before the browser follows the link. If the validation has errors the
link should not be followed.

My solution
-----------

1. client side solution

First I thought I just make a little javascript function like this:

function xy(url) {
	document.form.submit();
	parent.location=url;
}

The problem is that submit works ansynchronisly. I do not get a return
code to decide if to follow the url or not. Furthermore the form does
not get submitted if there is the line parent.location=url; .

2. server side solution

I thought of including a hidden field and include directives for my
controller method to raise the redirection if no validation errors are
there.

<a href="#" onClick="xy('/somewhere')"></a>

function xy(url) {
        document.form.hiddenfield.value = "redirect_to: " + url;
	document.form.submit();
}

@expose
def mycontroller(self, *args, **kwargs):
   #do the usual saving stuff

   if hasattr(kwargs, 'hiddenfield'):
      #parse the JSON or mini-langage and do the redirection, when no
      #validation errors


As there might be more other directives necessery for client-server
communciation I thought of setting the hiddenfield value to JSON or a
self made mini-language and parse this in the controller.

Is this a good solution?
Are there any other options?

--
Greg




More information about the Python-list mailing list