Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people, just like you, are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
Solved

Find textbox inside formview in javascript

Posted on 2013-12-11
24
740 Views
Last Modified: 2013-12-12
Can someone help me out how to find a textbox and set the value in JavaScript.

I get it to work on IE 11.0 but it fails on IE 8

var textbox = document.getElementById('<%=formView1.FindControl("tbSomething").ClientID %>');
var comments = textbox.value;


On IE8 textbox is null here.....
0
Comment
Question by:pucko73
  • 15
  • 9
24 Comments
 
LVL 82

Expert Comment

by:leakim971
ID: 39711431
What do you get on the screen with the following :
window.onload = function() {
         var id = '<%=formView1.FindControl("tbSomething").ClientID %>';
         alert("the ID is :" + id); // for testing purpose
         var textbox = document.getElementById(id);
         alert("textbox " + (textbox==null)?"not found":"found" ); // for testing purpose
         var comments = textbox.value;
         alert(comments);
}

Open in new window

0
 

Author Comment

by:pucko73
ID: 39711469
the id is ct100_ContentPlaceHolder1_formView1_tbSomething
not found
empty dialog
0
 
LVL 82

Expert Comment

by:leakim971
ID: 39711474
and on IE 11?
could you confirm when you see the first alert you can see the textbox in both cases?
0
Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 

Author Comment

by:pucko73
ID: 39711501
I get the same result from both... It's just that I dont get an exception in the javacode for the script code on IE 11 it seems like.

On 11 i can se the textbox when I get the message with the id.  (but i still get not found)

on 8 I can see the textbox when the dialog with the id is open.
0
 
LVL 82

Expert Comment

by:leakim971
ID: 39711522
ok, do a right to the page and choose view source on both.
try to locate the textbox and confirm the ID is the right one. Should not...
0
 

Author Comment

by:pucko73
ID: 39711536
If i don't put this in the onoad function, just add the alert rows to my function that was called in a onclientclick of a button I get on 11:

id as above
not found
some text  (ie the content of textbox... so I get the value here......


and on 8 I get an exception:

0x800a138f - JavaScript runtime error: Unable to get property 'value' of undefined or null reference....
0
 
LVL 82

Expert Comment

by:leakim971
ID: 39711542
Validate your page here : http://validator.w3.org/
0
 

Author Comment

by:pucko73
ID: 39711547
yes I can se the id  ctl00_ContentPlaceHolder1_formView1_tbSomething in view source on both.
0
 

Author Comment

by:pucko73
ID: 39711555
Could it have something to do with it beeing a multiline textobox

I can se that view source show it as <textarea
0
 
LVL 82

Expert Comment

by:leakim971
ID: 39711575
the problem is when you try to read the data
you muts put the provided script alone in its own script tag (outside of any function) :
<script>
window.onload = function() {
         var id = '<%=formView1.FindControl("tbSomething").ClientID %>';
         alert("the ID is :" + id); // for testing purpose
         var textbox = document.getElementById(id);
         alert("textbox " + (textbox==null)?"not found":"found" ); // for testing purpose
         var comments = textbox.value;
         alert(comments);
}
</script>

Open in new window

0
 

Author Comment

by:pucko73
ID: 39711590
Not much output from that.

Some warnings about:
The border attribute is obsolete. Consider specifying img { border: 0; } in CSS instead.

and

An img element must have an alt attribute, except under certain conditions. For details, consult guidance on providing text alternatives for images.

And:
 The cellpadding attribute on the table element is obsolete. Use CSS instead.
Should not affect this.
0
 
LVL 82

Expert Comment

by:leakim971
ID: 39711604
great. hope you got my previous comment too.
0
 

Author Comment

by:pucko73
ID: 39711633
I'm not sure I understand what you mean with your previous  comment?


The strange thing is when I debug it seems like the textbox is assigned  and I can see the properties of it   (running your onload function at least)
and it still say not found.....
0
 
LVL 82

Expert Comment

by:leakim971
ID: 39711658
any link to see your page?
0
 

Author Comment

by:pucko73
ID: 39711716
Unfortunately not.  I don't have any public server to put on :(
0
 
LVL 82

Expert Comment

by:leakim971
ID: 39711727
What about this (wait 10s before the alerts)  :

<script>
window.onload = function() {

setTimeout(function() {
         var id = '<%=formView1.FindControl("tbSomething").ClientID %>';
         alert("the ID is :" + id); // for testing purpose
         var textbox = document.getElementById(id);
         alert("textbox " + (textbox==null)?"not found":"found" ); // for testing purpose
         var comments = textbox.value;
         alert(comments);
},10000);

}
</script>

Open in new window

0
 

Author Comment

by:pucko73
ID: 39712062
still got the same.

id correct
not found
empty
0
 

Author Comment

by:pucko73
ID: 39712066
the not found thing is strange. because if there is something in the textbox
I get

id correct
not found
"content of textbox"
0
 

Author Comment

by:pucko73
ID: 39712081
So i guess that it works with your code in onload.... but when I have it in my code
it fails.


I call a function on a button OnClientClick

and that function calls anoter function that try to access the textbox
0
 

Author Comment

by:pucko73
ID: 39712105
I also notice that on ie8 when I press my button the page don't show the TextBox after I pressed the button....

The first function that I calll shows a dialog where I can select some values... And whan I Close that dialog the function that try to read from textbox are called.
0
 

Author Comment

by:pucko73
ID: 39712263
I solved my problem by:

1. Change the function that I call in onClientClick on the button
to fetch the value from the combobox, then I pass that as a parameter to the second function I call.

So I guess that the problem is that the textbox in the page seems to disapear when I
show Another dialog from the javascript
0
 
LVL 82

Accepted Solution

by:
leakim971 earned 500 total points
ID: 39712334
So?
0
 

Author Comment

by:pucko73
ID: 39713423
I found the reason for the problem.
Seems like there is some bug with span tag in ie8.

In the dialog that I show I had:
<b>Some Text: </b><span id="myid" />

Open in new window


if I changed that to
<b>Some Text: </b><span id="myid"> </span>

Open in new window


The page behind the dialog that I show did not "disaperar" and I can find the textbox etc.




i
0
 

Author Closing Comment

by:pucko73
ID: 39713433
Thanks for all your help.  I've learned a lot from you....
0

Featured Post

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Head to not include on scroll 4 23
IEnumerable<T> to a List<T> 8 37
Autocomplete with Jquery Question 2 19
How to control cache of some js files ? 7 39
Calculating holidays and working days is a function that is often needed yet it is not one found within the Framework. This article presents one approach to building a working-day calculator for use in .NET.
This article aims to explain the working of CircularLogArchiver. This tool was designed to solve the buildup of log file in cases where systems do not support circular logging or where circular logging is not enabled
The viewer will learn the basics of jQuery, including how to invoke it on a web page. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery.: (CODE)
The viewer will learn the basics of jQuery including how to code hide show and toggles. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery…

856 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question