PreYvin
PreYvin

Reputation: 29

HTML 5 Validation Error

StackOverflow,

I'm a NOOB learning slowly. I got some errors when trying to validate the following code in HTML 5 validator and don't know where the errors are:

    <!DoctypeHTML>
    <HTML>
    <head>
    <title> Javascript Programming!</title>
    <script type = “text/javascript”>
    <function substitute () {
    var  MyValue = document.getElementID (‘mytextbox’).value;
    If (myValue ==0) {
    alert(‘please enter a real value in the box’);
    Return;
    }
    Var myTitle = document.getElementbyID (‘title’)
    myTitle.innerHTML = myValue;
    }
    </head>
    <body>
    </body>
    </html>

Errors: Error: Bad value “text/javascript” for attribute type on element script: Expected a token character but saw “ instead. From line 5, column 2; to line 5, column 34 ↩ ↩

Error: End of file seen when expecting text or an end tag. At line 18, column 7 dy>↩

Error: Unclosed element script. From line 5, column 2; to line 5, column 34 ↩ ↩

Any feedback? Thanks guys and gals.

PreYvin

Upvotes: 1

Views: 805

Answers (6)

Nikhil Nanjappa
Nikhil Nanjappa

Reputation: 6632

  1. Close your <script> tag.

  2. Remove < from <function

  3. Use regular quotes instead of typographical

  4. space between Doctype and html ie. <!doctype html>

  5. Lastly, keywords should be all smallcase ie. if, return, var

Updated

<!doctype html>
<html>
<head>
<title> Javascript Programming!</title>
<script type = 'text/javascript'>
function substitute () {
var  MyValue = document.getElementID ('mytextbox').value;
if (myValue == 0) {
alert('please enter a real value in the box');
return;
}
var myTitle = document.getElementbyID ('title')
myTitle.innerHTML = myValue;
}
</script>
</head>
<body></body>
</html>

Upvotes: 0

Steve Archer
Steve Archer

Reputation: 641

Lots of basic syntax errors here.

  • <!DoctypeHTML> should be <!DOCTYPE html>

  • the first error you listed, (Bad value “text/javascript” for attribute type on element script: Expected a token character but saw “ instead.) is due to a funky double quote character: “ It should be " This probably originated from your text editor. What are you using? I like Sublime, but there are lots of options. The important thing is that you use a text editor designed for coding.

  • the next two errors are due to your script tag not being closed. Just add </script> at the end of the script.

Like I said, these are just simple syntax errors though. What you really need to learn here is how to look at those error messages and tell what's going on. Notice how the error messages reference a line number and column number? That's to tell you where the problem is. (Sometimes it can be off depending on the error, but worry about that later). Take a look at the line it's complaining about, read the error message, and you should be able to figure out what's wrong.

Upvotes: 0

Scott Marcus
Scott Marcus

Reputation: 65806

Ok, you've got a whole lot of invalid code (HTML and JavaScript) here:

<!DoctypeHTML>

Should be (case doesn't matter):

<!DOCTYPE html>

This:

<script type = “text/javascript”>

contains typographically formatted quotes instead of non-formatted quotes, which is a problem, but you don't even need the type=text/javascript anyway, so you can just write:

<script>

function is not an HTML tag, so this:

<function substitute () {

should be:

function substitute() {

Next, you are using formatted quotes in your JavaScript:

var  MyValue = document.getElementID (‘mytextbox’).value;

which should be unformatted, like this:

var  MyValue = document.getElementID ('mytextbox').value;

HTML isn't case-sensitive, but JavaScript is, so this:

If (myValue ==0) {

needs to be this:

if (myValue == 0)

More quote problems here:

alert(‘please enter a real value in the box’);

Should be:

alert('please enter a real value in the box');

More case-sensitivity issues here:

Return;

Should be:

return;

More quote and case-sensitivity issues here:

Var myTitle = document.getElementbyID (‘title’)

Should be:

var myTitle = document.getElementbyID ('title');

Lastly, when your script is finished and it's time to return to HTML, you didn't close your script, so this:

}
</head>

Should be:

}
</script>
</head>

Upvotes: 1

Khaled Ouertani
Khaled Ouertani

Reputation: 316

you have an extra < in your code. but you need to revisit your javascript as it has many problems the script tag is not closed.

   <!DoctypeHTML>
        <HTML>
        <head>
        <title> Javascript Programming!</title>
        <script type = “text/javascript”>
       function substitute () {
        var  MyValue = document.getElementID (‘mytextbox’).value;
        If (myValue ==0) {
        alert(‘please enter a real value in the box’);
        Return;
        }
        Var myTitle = document.getElementbyID (‘title’)
        myTitle.innerHTML = myValue;
        }
</script>
        </head>
        <body>
        </body>
        </html>

Upvotes: 0

Johannes
Johannes

Reputation: 67758

You are using typographical quotes - change these to regular quotes. (single and double)

Upvotes: 2

Lime
Lime

Reputation: 13532

You also have invalid JavaScript so this should be valid.

<!doctype html>
<HTML>
<head>
<title> Javascript Programming!</title>
<script>
function substitute () {
var  MyValue = document.getElementID (‘mytextbox’).value;
if (myValue ==0) {
alert(‘please enter a real value in the box’);
return;
}
var myTitle = document.getElementbyID (‘title’)
myTitle.innerHTML = myValue;
}
</script>
</head>
<body>
</body>
</html>

Upvotes: 0

Related Questions