1. Advertising
    y u no do it?

    Advertising (learn more)

    Advertise virtually anything here, with CPM banner ads, CPM email ads and CPC contextual links. You can target relevant areas of the site and show ads based on geographical location of the user if you wish.

    Starts at just $1 per CPM or $0.10 per CPC.

Javascript problem....

Discussion in 'JavaScript' started by Majo Rawne, Jun 21, 2007.

  1. #1
    Im trying to write a small Javascrpit program and this is what it consists of....(I havent been doing Javascript for long and I need help)

    I need the browser to prompt me to enter a 8 or more letter word and keep prompting till I enter one...

    I then need it to prompt me for a number but the number can be no higher than the number of characters in the word entered in the first prompt....

    and when i put in this number it will display a number ( the number is explained below)

    Word entered: Tottenham
    Number Entered: 5
    Number displayed on the screen will be: 1

    beacuse the number 5 in tottenham is the letter 'e' it then counts how many 'e's are in the word and displays it

    Im really stuck

    Please help

    Majo Rawne:confused:
     
    Majo Rawne, Jun 21, 2007 IP
  2. DavidMerrilees

    DavidMerrilees Guest

    Messages:
    12
    Likes Received:
    0
    Best Answers:
    0
    Trophy Points:
    0
    #2
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" lang="en" >
    <head>
    <title>form</title>
    <style type="text/css">
    .none {
    display: none;
    }

    .warn {
    color: red;
    }
    </style>
    <script type="text/javascript">
    function initialiseForm() {
    var legendObj = document.getElementById("legend");
    var wordInput = document.getElementById("word");
    var numberInput = document.getElementById("number");
    var countResultSpan = document.getElementById("countResult");
    var wordResultSpan = document.getElementById("wordResult");
    var stage1Div = document.getElementById("stage1");
    var stage2Div = document.getElementById("stage2");
    var wordLbl = stage1Div.getElementsByTagName("label")[0];
    var numberLbl = stage2Div.getElementsByTagName("label")[0];
    wordInput.onkeyup = function() {
    if (this.value.length > 8) {
    this.reset();
    stage2Div.style.display = "block";
    numberInput.reset();
    legendObj.innerHTML = "Enter a number";
    numberInput.test(true);
    } else {
    stage2Div.style.display = "none";
    if (this.value.length > 0) {
    wordLbl.className = legendObj.className += " warn";
    legendObj.innerHTML = "Word must be longer than 8 characters";
    } else {
    this.reset();
    }
    }
    }
    wordInput.reset = function() {
    wordLbl.className = "";
    legendObj.reset();
    }
    numberInput.onkeyup = function() {
    this.test(false);
    }
    numberInput.reset = function() {
    numberLbl.className = "";
    legendObj.reset();
    }
    numberInput.test = function(soft) {
    if (!isNaN(parseInt(this.value - 1)) && this.value.length > 0) {
    if ((this.value - 1) <= wordInput.value.length && (this.value - 1) > 0) {
    var letter = wordInput.value.charAt(this.value - 1);
    var instances = 0;
    for (var i = 0; i <= wordInput.value.length; i++) {
    if (letter == wordInput.value.charAt(i)) instances++;
    }
    numberInput.reset();
    legendObj.innerHTML = "There are <strong>" + instances + " " + letter + "</strong> 's in <strong>" + wordInput.value + "</strong>";
    } else {
    numberLbl.className = legendObj.className += " warn";
    legendObj.innerHTML = "Number must be less than the number of characters in your word";
    }
    } else if (!soft) {
    numberLbl.className = legendObj.className += " warn";
    legendObj.innerHTML = "Enter a valid number";
    }
    }
    legendObj.reset = function() {
    this.className = "";
    this.innerHTML = "Enter a word";
    }
    wordInput.value = "";
    numberInput.value = "";
    }

    window.onload = function() {
    initialiseForm();
    }
    </script>
    </head>
    <body>
    <fieldset>
    <legend id="legend">Enter a word</legend>
    <div id="stage1">
    <label for="word">Word</label>
    <input id="word" type="text" />
    </div>
    <div class="none" id="stage2">
    <label for="number">Number</label>
    <input id="number" type="text" />
    </div>
    </fieldset>
    </body>
    </html>
     
    DavidMerrilees, Jun 21, 2007 IP
  3. Majo Rawne

    Majo Rawne Peon

    Messages:
    5
    Likes Received:
    0
    Best Answers:
    0
    Trophy Points:
    0
    #3
    Wow thanks for the quick reply..

    But i need it to be alot simplier than that mate

    Ive just started Javascript learning prompts etc... i jst need it to be simply and basic

    For eg this is how far i got

    <HTML>
    <HEAD>

    <TITLE>Enter a Word </TITLE>

    <SCRIPT language="JavaScript" >

    var mysring; // string entered by user
    var userInput

    //initialise myString to an empty string
    mystring ='';

    userInput = window.prompt('Please Enter A Word','');
    userInput = parseFloat (userInput);

    function checkLength(userInput)
    {
    return (userInput.length >=8)

    }
    //loop while valid input has not been recieved


    </SCRIPT>

    </HEAD>

    <BODY>

    </BODY>

    </HTML>

    Could you do it like i have above, I know what above doesnt work but as i said im new to Javascript
     
    Majo Rawne, Jun 21, 2007 IP
  4. Majo Rawne

    Majo Rawne Peon

    Messages:
    5
    Likes Received:
    0
    Best Answers:
    0
    Trophy Points:
    0
    #4
    By looking at your code i want to be as good as you in the future:D
     
    Majo Rawne, Jun 21, 2007 IP