Ask a Question related to ASP, Design and Development.
-
Robert Mark Bram #1
JavaScript typeof checking a Request value
Hi All!
I have the following code in an asp page whose language tag is:
<%@LANGUAGE="JAVASCRIPT" CODEPAGE="65001"%>
// Find request variables.
var edition = Request.Form ("edition");
var language = Request.Form ("language");
Response.Write("Edition is type "" + (typeof edition) + "" and
value "" + edition + ""<br>");
Response.Write("Language is type "" + (typeof language) + ""
and value "" + language + ""<br>");
if (edition == "undefined" ||
(typeof edition) == "undefined")
{
Response.Write("Choose Page<br>");
Server.Execute ("choosePage.asp");
} // end if
else
{
Response.Write("View Page<br>");
Server.Execute ("viewPage.asp");
} // end else
The problem is this is what I see:
Edition is type "object" and value "undefined"
Language is type "object" and value "undefined"
View Page
There is nothing in choosePage.asp or viewPage.asp yet, but I am unable to
figure out why the else is triggering and not the if - my print out of the
edition var shows it has a value of "undefined"...
Any help would be most appreciated!
Rob
:)
Robert Mark Bram Guest
-
What is the difference between REQUEST and REQUEST.QUERYSTRING?
What is the difference between these two statements? They seem to do the same thing... response.write(request("variable")) ... -
Confused about a REQUEST.FORM and a REQUEST.QUERYSTRING
This is snipit of code, supplied by PayPal with explanation about what has to be done to access their back end. I am confused because they first... -
Checking for Javascript funcionality
Hi people, I think is the PHP scripter needs to know in advance if he can count on Client-side scripting capability. I just start with PHP but... -
best way to get data: request.form, request.params, controlname.value
Hi! I think I remember somewhere that using request.form was a bad idea (I can't say I remember why). So I'm wondering: What is the best way to... -
difference bet. request.querystring and Request.Params
request.params for asp.net is the httprequest object, and this method gets a combined collection of querystring, cookies, form and servervars... -
Lasse Reichstein Nielsen #2
Re: JavaScript typeof checking a Request value
"Robert Mark Bram" <relaxedrob@removethis.optushome.com.au> writes:
....> Response.Write("Edition is type "" + (typeof edition) + "" and
> value "" + edition + ""<br>");....> if (edition == "undefined" ||
> (typeof edition) == "undefined")So, edition is an *object*, and when it is converted to a string, it> Edition is type "object" and value "undefined"
becomes the string "undefined". I.e., edition.toString() == "undefined".
You then test whether edition=="undefined" . It isn't, since it is an
object, not a string, and objects are only equal to themselves.
Likewise, (typeof edition)=="undefined" fails since (typeof
edition)=="object".
No, its value is an object, which is neither the value "undefined" or> but I am unable to figure out why the else is triggering and not the
> if - my print out of the edition var shows it has a value of
> "undefined"...
the string "undefined". That object has a method called toString that
returns the string "undefined".
/L
--
Lasse Reichstein Nielsen - [email]lrn@hotpop.com[/email]
Art D'HTML: <URL:http://www.infimum.dk/HTML/randomArtSplit.html>
'Faith without judgement merely degrades the spirit divine.'
Lasse Reichstein Nielsen Guest
-
The Mighty Chaffinch #3
Re: JavaScript typeof checking a Request value
> I have the following code in an asp page whose language tag is:
I think you probably want the String value stored in the Request.Form.Item> <%@LANGUAGE="JAVASCRIPT" CODEPAGE="65001"%>
>
> // Find request variables.
> var edition = Request.Form ("edition");
> var language = Request.Form ("language");
object, not the object itself.
Try
var edition = String (Request.Form ("edition")),
language = String (Request.Form ("language"));
The variables should now contain either the string value from the form
field, or the string "undefined".
I hope this helps. I don't often see server-side JScript questions here,
most people seem to think that if it's ASP then it must be VBS.
MightyC
PS. I hope your user never types in "undefined" as a value!
and> Response.Write("Edition is type "" + (typeof edition) + "">...(snipped)
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system ([url]http://www.grisoft.com[/url]).
Version: 6.0.520 / Virus Database: 318 - Release Date: 18/09/03
The Mighty Chaffinch Guest
-
Robert Mark Bram #4
Re: JavaScript typeof checking a Request value
Hi MightyC! :)
Thanks for the response!
OK, well this gets out the values as Strings..> var edition = String (Request.Form ("edition")),
> language = String (Request.Form ("language"));
I spent a lot of time learning Javascript - I want to keep using it!> I hope this helps. I don't often see server-side JScript questions here,
> most people seem to think that if it's ASP then it must be VBS.
How on earth am I going to get around this?> PS. I hope your user never types in "undefined" as a value!
Why isn't this a problem with VBScript?
Rob
:)
Robert Mark Bram Guest
-
The Mighty Chaffinch #5
Re: JavaScript typeof checking a Request value
> Thanks for the response!
You're welcome!
It will invoke the toString method for the object, which is what you want.>> > var edition = String (Request.Form ("edition")),
> > language = String (Request.Form ("language"));
> OK, well this gets out the values as Strings..
Amen to that!>> > I hope this helps. I don't often see server-side JScript questions here,
> > most people seem to think that if it's ASP then it must be VBS.
> I spent a lot of time learning Javascript - I want to keep using it!
I use code like this:>> > PS. I hope your user never types in "undefined" as a value!
> How on earth am I going to get around this?
var action = (typeof (Request.Form.Item ("action")) == "undefined")
? null
: String (Request.Form.Item ("action"));
It's a bit clumsy but I've never come up with anything better. Now you can
test for empty field (ie. == null) and use a default value or send an error
or whatever.
Dunno. Never used VBScript :)> Why isn't this a problem with VBScript?
Happy JavaScript
MightyC
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system ([url]http://www.grisoft.com[/url]).
Version: 6.0.520 / Virus Database: 318 - Release Date: 18/09/03
The Mighty Chaffinch Guest
-
Robert Mark Bram #6
Re: JavaScript typeof checking a Request value
Hi again!
Except that I am finding this:> I use code like this:
>
> var action = (typeof (Request.Form.Item ("action")) == "undefined")
> ? null
> : String (Request.Form.Item ("action"));
typeof (Request ("notThere"))
or
typeof (Request.Form.Item ("notThere"))
returns
"object"
and not "undefined"
Rob
:)
Robert Mark Bram Guest
-
Steve van Dongen #7
Re: JavaScript typeof checking a Request value
On Sun, 19 Oct 2003 12:28:15 +1000, "Robert Mark Bram"
<relaxedrob@removethis.optushome.com.au> wrote:
Yes, that's correct, it's a collection. As I said in your other>Hi again!
>>>> I use code like this:
>>
>> var action = (typeof (Request.Form.Item ("action")) == "undefined")
>> ? null
>> : String (Request.Form.Item ("action"));
>Except that I am finding this:
> typeof (Request ("notThere"))
>or
> typeof (Request.Form.Item ("notThere"))
>returns
> "object"
>
>and not "undefined"
thread I usually just convert it to a string immediately and handle
undefined later. However, this is the "proper" way to do it:
var foo = Request.Form("foo").Count == 0
? null
: Request.Form("foo").item()
item() will return a string of all the foo arguments concatenated
together and delimited by commas, for example, if you have
?foo=123&foo=456 then .item() will return "123, 456". If you could
potentially have multiple instances of the same argument and the value
may contain a comma then you should loop through the collection using
..item(i), which returns the i-th foo argument, to be sure you handle
the values correctly.
Regards,
Steve
Steve van Dongen Guest
-
Steve van Dongen #8
Re: JavaScript typeof checking a Request value
On Sat, 18 Oct 2003 22:04:04 +0000 (UTC), "The Mighty Chaffinch"
<mightychaffinch@hotmail.com> wrote:
These are not JScript objects; they don't have a toString() method.>>>>> > var edition = String (Request.Form ("edition")),
>> > language = String (Request.Form ("language"));
>> OK, well this gets out the values as Strings..
>It will invoke the toString method for the object, which is what you want.
String(edition) calls the default method for the object which, in this
case, happens to be item().
Regards,
Steve
Steve van Dongen Guest
-
Robert Mark Bram #9
Re: JavaScript typeof checking a Request value
Howdy Steve - thank you very much for your response!
(from your other reply)*the fog begins to lift* .. :)> These are not JScript objects; they don't have a toString() method.
> String(edition) calls the default method for the object which, in this
> case, happens to be item().
....> Yes, that's correct, it's a collection.Now that I see it is a collection, this is exactly what I wanted!> var foo = Request.Form("foo").Count == 0
> ? null
> : Request.Form("foo").item()
Rob
:)
Robert Mark Bram Guest



Reply With Quote

