Validation Script

Discussion in 'JavaScript' started by Teessider_2000, Dec 7, 2006.

  1. #1
    Hi all

    First time poster here! I am pretty inexperienced using javascript so wanted some advice on my code. Basically i am doing little more than writing a validation script for an online survey im writing (http://www.williamcarson.co.uk/Evaluation_Form/form1.html) as you'll see there are lots of questions each with 3 radio buttons. Am trying to write a script that will check that each question has an answer, rather than writing out if statements for each question, was kinda hoping i could do it all in one short script. Trouble is its not working!
    The code is as follows:

    function Validate(){


    var proceed = "";
    for (var x = 1; x <= 16; x++) //16 questions
    {

    for (counter = 0; counter <= 2; counter++) // 3 answers

    if (document.page1.elements["q"+x][counter].checked)
    {
    proceed == "true";
    }
    else
    {

    proceed == "false";
    }
    }
    }
    if (proceed != "true")
    {
    return false;
    }
    else
    {
    return true;
    }

    }

    If anyone can give me some pointers that would be greatly appreciated!

    Cheers.
     
    Teessider_2000, Dec 7, 2006 IP
  2. krakjoe

    krakjoe Well-Known Member

    Messages:
    1,795
    Likes Received:
    141
    Best Answers:
    0
    Trophy Points:
    135
    #2
    can I get a quick look at html source aswell instead of guessing or taking time to redo what is already available ?
     
    krakjoe, Dec 7, 2006 IP
  3. Teessider_2000

    Teessider_2000 Peon

    Messages:
    12
    Likes Received:
    0
    Best Answers:
    0
    Trophy Points:
    0
    #3
    Yea sure the html is as follows:

    <form name="page1" id="page1" method="post" action="form2.php" onsubmit="return Validate()" >
    <p>Name : <input type="text" name="userName" size="30" value="First enter your name..." onclick="javascript:document.page1.userName.value='';"/></p>
    <table>
    <tr>
    <th colspan="2">Communication Skills</th><th>OK</th><th>Need to do more</th><th>Need to do less</th>
    </tr>
    <tr><td class="number">1</td>
    <td class="question">Talking in the group</td>
    <td class="radio"><input type="radio" name="q1" value="OK" /></td>
    <td class="radio"><input type="radio" name="q1" value="Need More" /></td>
    <td class="radio"><input type="radio" name="q1" value="Need Less" /></td>
    </tr>
    <tr><td class="number">2</td>
    <td class="question">Being brief and concise</td>
    <td class="radio"><input type="radio" name="q2" value="OK" /></td>
    <td class="radio"><input type="radio" name="q2" value="Need More" /></td>
    <td class="radio"><input type="radio" name="q2" value="Need Less" /></td>
    </tr>
    <tr><td class="number">3</td>
    <td class="question">Being forceful</td>
    <td class="radio"><input type="radio" name="q3" value="OK" /></td>
    <td class="radio"><input type="radio" name="q3" value="Need More" /></td>
    <td class="radio"><input type="radio" name="q3" value="Need Less" /></td>
    </tr>
    <tr><td class="number">4</td>
    <td class="question">Drawing others out</td>
    <td class="radio"><input type="radio" name="q4" value="OK" /></td>
    <td class="radio"><input type="radio" name="q4" value="Need More" /></td>
    <td class="radio"><input type="radio" name="q4" value="Need Less" /></td>
    </tr>
    <tr><td class="number">5</td>
    <td class="question">Listening alertly</td>
    <td class="radio"><input type="radio" name="q5" value="OK" /></td>
    <td class="radio"><input type="radio" name="q5" value="Need More" /></td>
    <td class="radio"><input type="radio" name="q5" value="Need Less" /></td>
    </tr>
    <tr><td class="number">6</td>
    <td class="question">Thinking before I talk</td>
    <td class="radio"><input type="radio" name="q6" value="OK" /></td>
    <td class="radio"><input type="radio" name="q6" value="Need More" /></td>
    <td class="radio"><input type="radio" name="q6" value="Need Less" /></td>
    </tr>
    <tr><td class="number">7</td>
    <td class="question">Keeping my remarks on the topic</td>
    <td class="radio"><input type="radio" name="q7" value="OK" /></td>
    <td class="radio"><input type="radio" name="q7" value="Need More" /></td>
    <td class="radio"><input type="radio" name="q7" value="Need Less" /></td>
    </tr>
    <tr><td class="number">8</td>
    <td class="question"><input type="text" name="question8" size="30" value="Enter your question..." onclick="javascript:document.page1.question8.value='';" /></td>
    <td class="radio"><input type="radio" name="q8" value="OK" /></td>
    <td class="radio"><input type="radio" name="q8" value="Need More" /></td>
    <td class="radio"><input type="radio" name="q8" value="Need Less" /></td>
    </tr>
    </table>
    <br /><br />
    <table>
    <tr>
    <th colspan="2">Observation Skills</th><th>OK</th><th>Need to do more</th><th>Need to do less</th>
    </tr>
    <tr><td class="number">9</td>
    <td class="question">Noting tension in the group</td>
    <td class="radio"><input type="radio" name="q9" value="OK" /></td>
    <td class="radio"><input type="radio" name="q9" value="Need More" /></td>
    <td class="radio"><input type="radio" name="q9" value="Need Less" /></td>
    </tr>
    <tr><td class="number">10</td>
    <td class="question">Noting who talks to whom</td>
    <td class="radio"><input type="radio" name="q10" value="OK" /></td>
    <td class="radio"><input type="radio" name="q10" value="Need More" /></td>
    <td class="radio"><input type="radio" name="q10" value="Need Less" /></td>
    </tr>
    <tr><td class="number">11</td>
    <td class="question">Noting interest level in the group</td>
    <td class="radio"><input type="radio" name="q11" value="OK" /></td>
    <td class="radio"><input type="radio" name="q11" value="Need More" /></td>
    <td class="radio"><input type="radio" name="q11" value="Need Less" /></td>
    </tr>
    <tr><td class="number">12</td>
    <td class="question">Sensing the feelings of individuals</td>
    <td class="radio"><input type="radio" name="q12" value="OK" /></td>
    <td class="radio"><input type="radio" name="q12" value="Need More" /></td>
    <td class="radio"><input type="radio" name="q12" value="Need Less" /></td>
    </tr>
    <tr><td class="number">13</td>
    <td class="question">Noting who is being left out</td>
    <td class="radio"><input type="radio" name="q13" value="OK" /></td>
    <td class="radio"><input type="radio" name="q13" value="Need More" /></td>
    <td class="radio"><input type="radio" name="q13" value="Need Less" /></td>
    </tr>
    <tr><td class="number">14</td>
    <td class="question">Noting reaction to my comments</td>
    <td class="radio"><input type="radio" name="q14" value="OK" /></td>
    <td class="radio"><input type="radio" name="q14" value="Need More" /></td>
    <td class="radio"><input type="radio" name="q14" value="Need Less" /></td>
    </tr>
    <tr><td class="number">15</td>
    <td class="question">Noting when the group avoids a topic</td>
    <td class="radio"><input type="radio" name="q15" value="OK" /></td>
    <td class="radio"><input type="radio" name="q15" value="Need More" /></td>
    <td class="radio"><input type="radio" name="q15" value="Need Less" /></td>
    </tr>
    <tr><td class="number">16</td>
    <td class="question"><input type="text" name="question16" size="30" value="Enter your question..." onclick="javascript:document.page1.question16.value='';" /></td>
    <td class="radio"><input type="radio" name="q16" value="OK" /></td>
    <td class="radio"><input type="radio" name="q16" value="Need More" /></td>
    <td class="radio"><input type="radio" name="q16" value="Need Less" /></td>
    </tr>
    </table>
    <br />
    <br />
    <br />

    <p class="nav"><input type="submit" value="next" /></p>
    </form>
     
    Teessider_2000, Dec 7, 2006 IP
  4. krakjoe

    krakjoe Well-Known Member

    Messages:
    1,795
    Likes Received:
    141
    Best Answers:
    0
    Trophy Points:
    135
    #4
    Would using php be cheating ?
     
    krakjoe, Dec 7, 2006 IP
  5. krakjoe

    krakjoe Well-Known Member

    Messages:
    1,795
    Likes Received:
    141
    Best Answers:
    0
    Trophy Points:
    135
    #5
    
    <?
    for($i = 1; $i <= 16; $i++)
    {
    	if ($_POST["q$i"] == "")
    	{
    		$messages = "Please enter an answer for each question.<br>";
    		$i = 17;
    	}
    	else {
    			//do whatever
    		 }
    }
    ?>
    
    PHP:
    Stick that at the top of a page, and put <?=$messages ?> somewhere in the body and you'll get the same affect, depends what you want to do after, but I don't seem to be able to sus out a js alternative, I'll keep trying though.....
     
    krakjoe, Dec 7, 2006 IP
  6. Teessider_2000

    Teessider_2000 Peon

    Messages:
    12
    Likes Received:
    0
    Best Answers:
    0
    Trophy Points:
    0
    #6
    i'll give that a try, good idea. I guess theres no rule that says you have to use javascript. Cheers mate.
     
    Teessider_2000, Dec 7, 2006 IP