You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Ashok Venkat <as...@yahoo.com> on 2007/10/26 04:49:42 UTC
Hidden form fields not found in request
Hello,
In the below code, i am submitting a form to itself in the onload method and changing some hidden form field values. After the form is submitted, the hidden values are not available in the request object.As a result, the page gets into an endless loop.
Thanks for any help
Code:
//test.jsp
if(request.getParameter( "ScreenResolutionHeight" ) == null )
{
%>
<html>
<head>
<title>Please wait one moment...</title>
</head>
<body onload='SubmitOnLoad();'>
<form method='post' id='ScreenResolutionForm'>
<input type='hidden' name='ScreenResolutionWidth' value='1024'>
<input type='hidden' name='ScreenResolutionHeight' value='768'>
<script>
function SubmitOnLoad()
{
var this_form = FindElementById( 'ScreenResolutionForm' );
this_form.ScreenResolutionWidth.value = window.screen.availWidth;
this_form.ScreenResolutionHeight.value = window.screen.availHeight;
this_form.BrowserType.value = navigator.appName;
this_form.submit();
}
function FindElementById( id )
{
if( document.getElementById )
{
return document.getElementById( id );
}
else if (document.layers)
{
return document.layers[id];
}
else if (document.all)
{
return document.all[id];
}
return undefined;
}
</script>
</body>
</html>
<%
}else {
............
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
Re: Hidden form fields not found in request
Posted by Pid <p...@pidster.com>.
Ognjen Blagojevic wrote:
> Hi Ashok,
>
> Ashok Venkat wrote:
>> In the below code, i am submitting a form to itself in the onload
>> method and changing some hidden form field values. After the form is
>> submitted, the hidden values are not available in the request
>> object.As a result, the page gets into an endless loop.
>
> Interesting. I treied it, and Firefox stops on JavaScript error in line
>
> this_form.BrowserType.value = navigator.appName;
>
> so the form never gets submitted. After adding one more hidden field:
>
> <input type='hidden' name='BrowserType' value='unknown!'>
>
> everything works fine.
>
>
> Regards,
> Ognjen
It looks like a nasty and somewhat unsafe solution to some problem or
other. Is there a reason you need to submit the page at all?
If you're submitting the page to itself, AND using javascript, why not
just use the scripting to alter the contents of the hidden fields?
They can be uniquely identified on the page if you supply an id
attribute - you could modify them directly...
Alternatively, if you're just testing a concept at this stage, I'd
suggest that you could use an AJAX call to submit the page dimensions to
a backend during onloads execution.
p
>> Thanks for any help
>>
>> Code:
>> //test.jsp
>>
>> if(request.getParameter( "ScreenResolutionHeight" ) == null )
>> {
>> %>
>> <html>
>> <head>
>> <title>Please wait one moment...</title>
>> </head>
>> <body onload='SubmitOnLoad();'>
>>
>> <form method='post' id='ScreenResolutionForm'>
>> <input type='hidden' name='ScreenResolutionWidth' value='1024'>
>> <input type='hidden' name='ScreenResolutionHeight' value='768'>
>>
>> <script>
>> function SubmitOnLoad()
>> {
>> var this_form = FindElementById( 'ScreenResolutionForm' );
>> this_form.ScreenResolutionWidth.value = window.screen.availWidth;
>> this_form.ScreenResolutionHeight.value = window.screen.availHeight;
>> this_form.BrowserType.value = navigator.appName;
>>
>>
>> this_form.submit();
>> }
>>
>> function FindElementById( id )
>> {
>> if( document.getElementById )
>> {
>> return document.getElementById( id );
>> }
>> else if (document.layers)
>> {
>> return document.layers[id];
>> }
>> else if (document.all)
>> {
>> return document.all[id];
>> }
>>
>> return undefined;
>> }
>> </script>
>>
>> </body>
>> </html>
>> <%
>> }else {
>> ............
>>
>> __________________________________________________
>> Do You Yahoo!?
>> Tired of spam? Yahoo! Mail has the best spam protection around
>> http://mail.yahoo.com
>
>
> ---------------------------------------------------------------------
> To start a new topic, e-mail: users@tomcat.apache.org
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
>
---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org
Re: Hidden form fields not found in request
Posted by Ognjen Blagojevic <og...@etf.bg.ac.yu>.
Hi Ashok,
Ashok Venkat wrote:
> In the below code, i am submitting a form to itself in the onload method and changing some hidden form field values. After the form is submitted, the hidden values are not available in the request object.As a result, the page gets into an endless loop.
Interesting. I treied it, and Firefox stops on JavaScript error in line
this_form.BrowserType.value = navigator.appName;
so the form never gets submitted. After adding one more hidden field:
<input type='hidden' name='BrowserType' value='unknown!'>
everything works fine.
Regards,
Ognjen
>
> Thanks for any help
>
> Code:
>
> //test.jsp
>
> if(request.getParameter( "ScreenResolutionHeight" ) == null )
> {
> %>
> <html>
> <head>
> <title>Please wait one moment...</title>
> </head>
> <body onload='SubmitOnLoad();'>
>
> <form method='post' id='ScreenResolutionForm'>
> <input type='hidden' name='ScreenResolutionWidth' value='1024'>
> <input type='hidden' name='ScreenResolutionHeight' value='768'>
>
> <script>
> function SubmitOnLoad()
> {
> var this_form = FindElementById( 'ScreenResolutionForm' );
> this_form.ScreenResolutionWidth.value = window.screen.availWidth;
> this_form.ScreenResolutionHeight.value = window.screen.availHeight;
> this_form.BrowserType.value = navigator.appName;
>
>
> this_form.submit();
> }
>
> function FindElementById( id )
> {
> if( document.getElementById )
> {
> return document.getElementById( id );
> }
> else if (document.layers)
> {
> return document.layers[id];
> }
> else if (document.all)
> {
> return document.all[id];
> }
>
> return undefined;
> }
> </script>
>
> </body>
> </html>
> <%
> }else {
> ............
>
> __________________________________________________
> Do You Yahoo!?
> Tired of spam? Yahoo! Mail has the best spam protection around
> http://mail.yahoo.com
---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org
Re: Hidden form fields not found in request
Posted by Johnny Kewl <jo...@kewlstuff.co.za>.
---------------------------------------------------------------------------
HARBOR: http://coolharbor.100free.com/index.htm
Now Tomcat is also a cool application server
---------------------------------------------------------------------------
Hi there.... What I suggest you do is get FireFox and the FireBug plugin,
and then debug the script.
Javascript can be extremely tricky.
Alternatively stick alerts in your code so you can see the script invoking.
Just looking at this I cant see the </form> close tag.
Also I think its better to stick the script in the Headers, so that you sure
the browser picks up on it before the onload...
Get a debugger, its the only way to get it right... if you have an old
version of MS interdev, that will also work.
Good luck...
----- Original Message -----
From: "Ashok Venkat" <as...@yahoo.com>
To: <us...@tomcat.apache.org>
Sent: Friday, October 26, 2007 4:49 AM
Subject: Hidden form fields not found in request
> Hello,
>
> In the below code, i am submitting a form to itself in the onload method
> and changing some hidden form field values. After the form is submitted,
> the hidden values are not available in the request object.As a result, the
> page gets into an endless loop.
>
> Thanks for any help
>
> Code:
>
> //test.jsp
>
> if(request.getParameter( "ScreenResolutionHeight" ) == null )
> {
> %>
> <html>
> <head>
> <title>Please wait one moment...</title>
> </head>
> <body onload='SubmitOnLoad();'>
>
> <form method='post' id='ScreenResolutionForm'>
> <input type='hidden' name='ScreenResolutionWidth' value='1024'>
> <input type='hidden' name='ScreenResolutionHeight' value='768'>
>
> <script>
> function SubmitOnLoad()
> {
> var this_form = FindElementById( 'ScreenResolutionForm' );
> this_form.ScreenResolutionWidth.value = window.screen.availWidth;
> this_form.ScreenResolutionHeight.value = window.screen.availHeight;
> this_form.BrowserType.value = navigator.appName;
>
>
> this_form.submit();
> }
>
> function FindElementById( id )
> {
> if( document.getElementById )
> {
> return document.getElementById( id );
> }
> else if (document.layers)
> {
> return document.layers[id];
> }
> else if (document.all)
> {
> return document.all[id];
> }
>
> return undefined;
> }
> </script>
>
> </body>
> </html>
> <%
> }else {
> ............
>
> __________________________________________________
> Do You Yahoo!?
> Tired of spam? Yahoo! Mail has the best spam protection around
> http://mail.yahoo.com
---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org