aspose file tools*
The moose likes HTML, CSS and JavaScript and the fly likes unable to update  Div tag. Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Engineering » HTML, CSS and JavaScript
Bookmark "unable to update  Div tag." Watch "unable to update  Div tag." New topic
Author

unable to update Div tag.

Ram Gokul
Ranch Hand

Joined: Oct 07, 2005
Posts: 85
I have couple of <div> in a jsp pageA . I have iframe in it which i am targeting from another jsp pageB. In the PageB , i have couple of Javascript to update both the <div> in pageA . The first update is successfull but the updating second <div> fails --that is text is getting changed but at some other place in HTML and not at the <div> area. It behaves as though it fails to see the <div>.

the difference between 2 <div> is that first <div> - which is being updated properyl simply encloses a text and resides inside table row element like

<tr>
<td colspan="2" class="xxx">
Welcome, <br/><divid="login_box">MyName.</div>
</td>
</tr>

The second div that is not getting updates encloses the whole table row like this. ( Note this row is third row in the table ).

<div id="aaa">
<tr>
<td></td>
</tr>

This is the only difference.

I am using following code in PageB to update pageA.

<script type="text/javascript">
window.parent.clear_main_menu();
window.parent.document.all.login_box_username.innerHTML = "<%=user.getUserFullName()%>.";
</script> ----------This is working good

<script type="text/javascript">
newitem = <tr><td>Language</td></tr>;
window.parent.document.all.aaa.innerHTML = newitem;
// window.parent.document.getElementById('aaa').innerHTML = newitem;
</script>-- This script is not working correctly. I was expecting the third row to change ..but it writing at the top of the table...


I am a novie in javascript ..so i would be thankful if someone explains me this.
Eric Pascarello
author
Rancher

Joined: Nov 08, 2001
Posts: 15376
    
    6
You should not be using document.all, that is outdated IE only property.

You should not have a div inside of a table that is not inside of a cell.

this is bad markup below!
<div>
<tr>
<td></td>
</tr>
</div>

Eric
Ram Gokul
Ranch Hand

Joined: Oct 07, 2005
Posts: 85
Thanks Eric . I got it to work by putting div inside the cell . but I just abstracted the problem . The original code has much more to it like having struts tag called <logic:notPresent> . So if bean is not present there would not be a <tr> at all in the first place . In my second parsing , that is thru pageB, I might have valid bean and hence I wanted to draw a table row .

But as you said , I put div inside the cell now .which mean <tr> will always be there even if the bean is not there . That is ok since a empty Row does not draw anything on the screen ( with my stylesheet class )


Now proceeding forward , I have another problem .I am using a variable in javascript like below in my jsp .( It has a struts tag )

newitem = '<logic:notEmpty name="user" property="Languages".........>';


This when parsed in JSP and sent to BRowser is giving me a "unterminated string constant" error . The line is :

newitem = '<select name="defaultLanguage" class="logonTextBox"><option value="E" selected="selected">English</option>
<option value="ZH-T">Chinese Traditional</option>
<option value="AR">Arabic</option>
<option value="FA">Persian</option>
</select>';

We can see the problem . But how do i solve this.
I dont know whhether this is javascript or JSTL tag problem.


Thanks
[ August 15, 2006: Message edited by: Ram Gokul ]
Bear Bibeault
Author and ninkuma
Marshal

Joined: Jan 10, 2002
Posts: 61437
    
  67

JavaScript string literals cannot span multiple lines.


[Asking smart questions] [Bear's FrontMan] [About Bear] [Books by Bear]
Bear Bibeault
Author and ninkuma
Marshal

Joined: Jan 10, 2002
Posts: 61437
    
  67

Originally posted by Ram Gokul:

I dont know whhether this is javascript or JSTL tag problem.


There is no JSTL in your example code.
Ram Gokul
Ranch Hand

Joined: Oct 07, 2005
Posts: 85
I used <c:forEach> JSTL tag instead of <html:select> struts tag
Because iteration is controlled by me , i am able to use the javascript String variables and prevent line breaks.
Ram Gokul
Ranch Hand

Joined: Oct 07, 2005
Posts: 85
I used <c:forEach> JSTL tag instead of <html:select> struts tag
Because iteration is controlled by me , i am able to use the javascript String variables and prevent line breaks.
 
It is sorta covered in the JavaRanch Style Guide.
 
subject: unable to update Div tag.