Well, let's say you wanted to get somebody's name before they saw the page, and then write their name on your page right before their very eyes.......Well, you can do this using a javascript prompt. Here's the command:

prompt('Your Question', ' ');

This will bring up a window asking the question of your choosing, with a space for the viewer to answer. The second set of quotes allows you to enter a default answer. If you leave it blank, the viewer will just see an empty box ready to be typed in. This is usually done before the page loads, so that you can write the answer they give into your page. To view an example, click the link below. You will get a prompt for your name, and your name will be written on the page!

Example 3

Now, for the script that made this work.

Note how the prompt and if/else statements are in the HEAD section (and is automatically shown when the page loads), while the actual writing of the name occurs in the BODY section

<SCRIPT language="JavaScript"> 
<!--hide  
 var yourname= prompt('Please enter your name, so you can get a special greeting', ' ');

 if ( (yourname==' ') || (yourname==null) ) 
 { 
   yourname="Dude"; 
 } 

//--> 
</SCRIPT> 

</HEAD> 

<BODY> 

<SCRIPT language="JavaScript"> 
<!--hide 
 document.write("<CENTER><H1>Hello, " + yourname + " ! Welcome to My Page! <\/H1><\/CENTER>");

//--> 
</SCRIPT> 

</BODY>
  1. The first thing that happens is that the variable yourname is assigned the value it receives from the user from the prompt.

  2. The if/else statement assigns checks for " " and for null, and both are pretty much nothing, either would work

    if ( (yourname==' ') || (yourname==null) )

  3. We assign yourname a value of "Dude" if nothing is entered in the prompt by the user.

    yourname="Dude";

  4. Now, in the BODY section, you again use the SCRIPT tags to set off the JavaScript from any HTML around it.

    <BODY>
    <SCRIPT language="JavaScript">
    <!--hide

  5. We use the document.write(" "); command to allow the variable yourname to be written to the document. This is the main way you can get a variable printed to your HTML page - and you may use it as much as you want to

    document.write("<CENTER><H1>Hello, " + yourname + " ! Welcome to My Page! <\/H1><\/CENTER>");

  6. You are writing two strings plus your variable, yourname.


    document.write("<CENTER><H1>Hello, " + yourname + " ! Welcome to My Page! <\/H1><\/CENTER>");

  7. The variable yourname is not in quotes because it is a value and not itself a string (it's value is a string).
  8. That's why we have the plus signs around it....It makes the browser write the first string plus the variable plus the second string.
  9. Now, notice the HTML tags are inside the strings! Since this is a javascript, the only way to write the HTML tags back to the page is by including them inside the quotes as part of the string.
  10. Also, you probably noticed the way the closing tags were written differently. (<\/H1>).
  11. The backslash is there as the javascript escape character. It allows you to write the forward slash without it being mistaken for a division sign! (Remeber / is division in JavaScript). Thus using the backslash followed by a forward slash ultimately gives us.......our single forward slash. -- we'll do more escapes later.

Another Example, if you have a textbox to validate in a form.....

Click the button...


here's the script:

<SCRIPT LANGUAGE = JavaScript>

function Prompter()
{
var text = new String()

text = window.prompt("Do you program in JavaScript?", "Yes, I do")

if (text == "")
document.form1.Textbox.value = "You didn't enter anything."
else
document.form1.Textbox.value = "You entered: " + text

}

</SCRIPT>

and here's what I slipped into the button's "onclick" event:

<INPUT TYPE = BUTTON Value = "Click Me" onClick = "Prompter()">