By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
459,575 Members | 1,377 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 459,575 IT Pros & Developers. It's quick & easy.

Firefox and getElementById

P: n/a
Ok, interesting problem here, I have a webcontrol that holds a textbox
and a requiredfieldvalidator from System.Web.UI.Webcontrols in .NET 2.0
(this is javascript related, bear with me).
The validator is added to the page validator collection so at run time,
..NET auto generates an array e.g.:
var Page_Validators = new
Array(document.getElementById("ctl0_ContentPlaceHo lder1_UcControl1__ctl1"),
document.getElementById("ctl0_ContentPlaceHolder1_ UcControl1__ctl3"));
which it then references as part of the client side validation.
For some reason however, this works perfectly in IE, works fine in my
test harness but doesn't work in the release project. The ONLY possible
reason that I can see is that the release project has underscores in
the ID and my test harness does not.
Has anyone come across this before?
Please note 2 things:
1) The id attribute is auto-generated by .NET and thus I have extremely
limited control over altering it.
2) The array Page_Validators is auto-generated as well and I have
absolutely NO entry point with which to alter it so I CANNOT change the
method of .getElementById, etc.

Sep 25 '06 #1
Share this Question
Share on Google+
9 Replies


P: n/a


ja*******@gmail.com wrote:

The validator is added to the page validator collection so at run time,
.NET auto generates an array e.g.:
var Page_Validators = new
Array(document.getElementById("ctl0_ContentPlaceHo lder1_UcControl1__ctl1"),
document.getElementById("ctl0_ContentPlaceHolder1_ UcControl1__ctl3"));
which it then references as part of the client side validation.
For some reason however, this works perfectly in IE, works fine in my
test harness but doesn't work in the release project.
What excactly happens, what error exactly do you get in the JavaScript
console for which line?

--

Martin Honnen
http://JavaScript.FAQTs.com/
Sep 25 '06 #2

P: n/a
RVB
It's odd, what -should- happen is that the javacsript fires off on the
defocus (don't know the exact name) event on the textbox to fire off
validation at which point, it notes that the test text I've put in is a
blank space (which works in my test harness on FF).
What happens is....NOTHING! I fire up the javascript console in FF,
clear any style complaints it has and try again. No events fired, no
error messages occur in the console. I am at a complete loss as to
what's going on.
I even rechecked agsint the test harness to see the auto generated js
that gets put in and teh js files that get pulled from webresource.axd
(the script handler in webcontrols) and, bar the IDs of the field,
there's no difference.

Martin Honnen wrote:
ja*******@gmail.com wrote:

The validator is added to the page validator collection so at run time,
.NET auto generates an array e.g.:
var Page_Validators = new
Array(document.getElementById("ctl0_ContentPlaceHo lder1_UcControl1__ctl1"),
document.getElementById("ctl0_ContentPlaceHolder1_ UcControl1__ctl3"));
which it then references as part of the client side validation.
For some reason however, this works perfectly in IE, works fine in my
test harness but doesn't work in the release project.

What excactly happens, what error exactly do you get in the JavaScript
console for which line?

--

Martin Honnen
http://JavaScript.FAQTs.com/
Sep 25 '06 #3

P: n/a
ASM
ja*******@gmail.com a écrit :
Ok, interesting problem here, I have a webcontrol that holds a textbox
and a requiredfieldvalidator from System.Web.UI.Webcontrols in .NET 2.0
(this is javascript related, bear with me).
The validator is added to the page validator collection so at run time,
.NET auto generates an array e.g.:
var Page_Validators = new
Array(document.getElementById("ctl0_ContentPlaceHo lder1_UcControl1__ctl1"),
document.getElementById("ctl0_ContentPlaceHolder1_ UcControl1__ctl3"));
which it then references as part of the client side validation.
For some reason however, this works perfectly in IE, works fine in my
test harness but doesn't work in the release project. The ONLY possible
reason that I can see is that the release project has underscores in
the ID and my test harness does not.
what could break a poor undescore ?
Has anyone come across this before?
never seen an array of functions calling elements ...
did elements exist before statement of the array ?
Please note 2 things:
1) The id attribute is auto-generated by .NET and thus I have extremely
limited control over altering it.
2) The array Page_Validators is auto-generated as well and I have
absolutely NO entry point with which to alter it so I CANNOT change the
method of .getElementById, etc.
if you can't change anything ... what is the question ?

I understand you can't do :

var Page_Validators = new Array(
"ctl0_ContentPlaceHolder1_UcControl1__ctl1",
"ctl0_ContentPlaceHolder1_UcControl1__ctl3"
);

and only after work with
document.getElementById(Page_Validators[i]).innerHTML = ... ;

perhaps could you try

document.getElementById(Page_Validators[i].id).innerHTML = ... ;

--
ASM
Sep 26 '06 #4

P: n/a
ASM
RVB a écrit :

are you : jason.hau ?
why do you change your identity from post to post ?
It's odd, what -should- happen is that the javacsript fires off on the
defocus (don't know the exact name) event on the textbox
which textbox this time ?
(what is a textbox?)

eval(Page_Validators[i].innerHTML = ...);

? ?

Sep 26 '06 #5

P: n/a
ASM scribed:
>ja*******@gmail.com a écrit :
>Ok, interesting problem here, I have a webcontrol that holds a textbox
and a requiredfieldvalidator from System.Web.UI.Webcontrols in .NET 2.0
(this is javascript related, bear with me).
The validator is added to the page validator collection so at run time,
.NET auto generates an array e.g.:
var Page_Validators = new
Array(document.getElementById("ctl0_ContentPlaceH older1_UcControl1__ctl1"),
document.getElementById("ctl0_ContentPlaceHolder1 _UcControl1__ctl3"));
which it then references as part of the client side validation.
For some reason however, this works perfectly in IE, works fine in my
test harness but doesn't work in the release project. The ONLY possible
reason that I can see is that the release project has underscores in
the ID and my test harness does not.

what could break a poor undescore ?
>Has anyone come across this before?
I don't understand why, but I recently encountered similar behavior with FF.
I had to precede all references to document with window, i.e.,
window.document.
--
Ed Jay (remove 'M' to respond by email)
Sep 26 '06 #6

P: n/a
RVB
Yeah, I keep forgetting to change to a nickname on groups and only
remember after my first post >_< (it helps keep down on the spam).

The textbox itself is just an input tag with type text set against it.
ASM wrote:
RVB a écrit :

are you : jason.hau ?
why do you change your identity from post to post ?
It's odd, what -should- happen is that the javacsript fires off on the
defocus (don't know the exact name) event on the textbox

which textbox this time ?
(what is a textbox?)

eval(Page_Validators[i].innerHTML = ...);

? ?

.
Sep 26 '06 #7

P: n/a
RVB
Well, I've just downloaded firebug for firefox which gives me a nicer
js console and doing document.getElementById worked fine! Very odd.
Seems to indicate that the validation functions aren't firing. I'll see
where exactly it's meant to be going.

Ed Jay wrote:
ASM scribed:
ja*******@gmail.com a écrit :
Ok, interesting problem here, I have a webcontrol that holds a textbox
and a requiredfieldvalidator from System.Web.UI.Webcontrols in .NET 2.0
(this is javascript related, bear with me).
The validator is added to the page validator collection so at run time,
.NET auto generates an array e.g.:
var Page_Validators = new
Array(document.getElementById("ctl0_ContentPlaceHo lder1_UcControl1__ctl1"),
document.getElementById("ctl0_ContentPlaceHolder1_ UcControl1__ctl3"));
which it then references as part of the client side validation.
For some reason however, this works perfectly in IE, works fine in my
test harness but doesn't work in the release project. The ONLY possible
reason that I can see is that the release project has underscores in
the ID and my test harness does not.
what could break a poor undescore ?
Has anyone come across this before?
I don't understand why, but I recently encountered similar behavior with FF.
I had to precede all references to document with window, i.e.,
window.document.
--
Ed Jay (remove 'M' to respond by email)
Sep 26 '06 #8

P: n/a
RVB
Not sure what you mean by "what could break a poor undescore ?".
While I can't change the output javascript, I can add javascript of my
own however, I'm not sure what I could add to alter the array/fix this
problem.
(The reason I've posted here ,as well as the .NET newsgroups, is that
its not completely a .NET problem, it's the js that's being produced by
..NET that's causing the problem. )

ASM wrote:
ja*******@gmail.com a écrit :
Ok, interesting problem here, I have a webcontrol that holds a textbox
and a requiredfieldvalidator from System.Web.UI.Webcontrols in .NET 2.0
(this is javascript related, bear with me).
The validator is added to the page validator collection so at run time,
.NET auto generates an array e.g.:
var Page_Validators = new
Array(document.getElementById("ctl0_ContentPlaceHo lder1_UcControl1__ctl1"),
document.getElementById("ctl0_ContentPlaceHolder1_ UcControl1__ctl3"));
which it then references as part of the client side validation.
For some reason however, this works perfectly in IE, works fine in my
test harness but doesn't work in the release project. The ONLY possible
reason that I can see is that the release project has underscores in
the ID and my test harness does not.

what could break a poor undescore ?
Has anyone come across this before?

never seen an array of functions calling elements ...
did elements exist before statement of the array ?
Please note 2 things:
1) The id attribute is auto-generated by .NET and thus I have extremely
limited control over altering it.
2) The array Page_Validators is auto-generated as well and I have
absolutely NO entry point with which to alter it so I CANNOT change the
method of .getElementById, etc.

if you can't change anything ... what is the question ?

I understand you can't do :

var Page_Validators = new Array(
"ctl0_ContentPlaceHolder1_UcControl1__ctl1",
"ctl0_ContentPlaceHolder1_UcControl1__ctl3"
);

and only after work with
document.getElementById(Page_Validators[i]).innerHTML = ... ;

perhaps could you try

document.getElementById(Page_Validators[i].id).innerHTML = ... ;

--
ASM
Sep 26 '06 #9

P: n/a
RVB
Additionally, it shows that the contents of the array are correct in
that they pick up the spans that contain the error messages.
(ordinarily works by setting these to visible if there's a problem and
prevents postback/submit of the page)

RVB wrote:
Well, I've just downloaded firebug for firefox which gives me a nicer
js console and doing document.getElementById worked fine! Very odd.
Seems to indicate that the validation functions aren't firing. I'll see
where exactly it's meant to be going.

Ed Jay wrote:
ASM scribed:
>ja*******@gmail.com a écrit :
>Ok, interesting problem here, I have a webcontrol that holds a textbox
>and a requiredfieldvalidator from System.Web.UI.Webcontrols in .NET 2.0
>(this is javascript related, bear with me).
>The validator is added to the page validator collection so at run time,
>.NET auto generates an array e.g.:
>var Page_Validators = new
>Array(document.getElementById("ctl0_ContentPlaceH older1_UcControl1__ctl1"),
>document.getElementById("ctl0_ContentPlaceHolder1 _UcControl1__ctl3"));
>which it then references as part of the client side validation.
>For some reason however, this works perfectly in IE, works fine in my
>test harness but doesn't work in the release project. The ONLY possible
>reason that I can see is that the release project has underscores in
>the ID and my test harness does not.
>
>what could break a poor undescore ?
>
>Has anyone come across this before?
>
I don't understand why, but I recently encountered similar behavior with FF.
I had to precede all references to document with window, i.e.,
window.document.
--
Ed Jay (remove 'M' to respond by email)
Sep 26 '06 #10

This discussion thread is closed

Replies have been disabled for this discussion.