954,574 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

Javascript/JSP Error

Hi,

I have pasted my code below, please paste it into a JSP and tell me why it gives the error "Unterminated String Constant"

<html>
    <head>
        <title>Debugging</title>
        <script language="javascript">
            function changeOn(object, objectId) {
                alert('in function');
                if (object == 'bookingsButton') {
                    alert('first if');
                    document.getElementById(objectId).src = 'Images/BookingsOn.png';
                } else if (object == 'detailsButton') {
                    alert('2nd if');
                    document.getElementById(objectId).src = 'Images/DetailsOn.png';
                }
            }
            function changeOff(object, objectId) {
                if (object == 'bookingsButton') {
                    document.getElementById(objectId).src = 'Images/Bookings.png';
                } else if (object == 'detailsButton'){
                    document.getElementById(objectId).src = 'Images/Details.png';
                }
            }
        </script>
    </head>
    <body>
        <%
                    for (int i = 0; i < 2; i++) {
        %>
        <table>
            <tr>
                <td>
                    <a href="Bookings.jsp"><img src="Images/Bookings.png" id="bookings<%out.println("" + i);%>" onmouseover="changeOn('bookingsButton','bookings<%out.println("" + i);%>')" onmouseout="changeOff('bookingsButton','bookings<%out.println("" + i);%>')"/></a>
                </td>
                <td>
                    <a href="Details.jsp"><img src="Images/Details.png" id="details<%out.println("" + i);%>"/></a>
                </td>
            </tr>
        </table>
        <% }%>
    </body>
</html>


Thanks,
-Ashton

AshtonHogan
Posting Whiz in Training
210 posts since Jul 2009
Reputation Points: 7
Solved Threads: 1
 

The use of out.println() adds a newline character causing erroneous syntax of the generated output.
The generated html is,

<img src="Images/Bookings.png" id="bookings0
" onmouseover="changeOn('bookingsButton','bookings0
')" onmouseout="changeOff('bookingsButton','bookings0
')"/>

There is a newline character after bookings0

Use out.print() instead. Which will generate html like,

<img src="Images/Bookings.png" id="bookings0" onmouseover="changeOn('bookingsButton','bookings0')" onmouseout="changeOff('bookingsButton','bookings0')"/>
parry_kulk
Junior Poster
Team Colleague
167 posts since Jan 2007
Reputation Points: 26
Solved Threads: 41
 

You're a genius. Thanks a lot man.

AshtonHogan
Posting Whiz in Training
210 posts since Jul 2009
Reputation Points: 7
Solved Threads: 1
 

This question has already been solved

Post: Markdown Syntax: Formatting Help
You
View similar articles that have also been tagged: