2017-02-14 12 views
1

Ceci est un code simple et je ne sais pas où je suis allé mal .. validation Nom fonctionne si aucun nom est entré, mais il ne montre pas le résultat lorsqu'un valide le nom est entré.Javascript Validation (entrée non après avoir cliqué sur montrant Envoyer)

Voici mon code:

Je suis nouveau en html et javascript, en espérant que je serais obtenir de l'aide d'ici. Merci vous

function checkname(form) { 
 
    var eobj = document.getElementById('MITname'); 
 
    var jname = form.Name.value; 
 
    var error = false; 
 

 
    eobj.innerHTML = ''; 
 

 
    if (jname == '') { 
 
     error = "Name is required!"; 
 
     var error2 = error.fontcolor("red"); 
 

 
    } 
 
    if (error) { 
 
     if (hasFocus == false) { 
 
     form.Name.focus(); 
 
     hasFocus = true; 
 
     } 
 
     eobj.innerHTML = error2; 
 
     return false; 
 
    } 
 
    return true; 
 
    } 
 

 
    function showinput() { 
 
    document.getElementById('namedisplay').innerHTML = document.getElementById('MITname').value; 
 
    } 
 

 

 
    function validate() { 
 
    hasFocus = false; 
 
    var form = document.forms['form']; 
 
    var ary = [checkname]; 
 
    var rtn = true; 
 
    var z0 = 0; 
 
    for (var z0 = 0; z0 < ary.length; z0++) { 
 
     if (!ary[z0](form)) { 
 
     rtn = false; 
 
     } 
 
    } 
 
    return rtn; 
 
    }
<form action="" name="form" onsubmit="return validate()"> 
 
    <tr> 
 
    <td align="right">Name:<font color="red">*</font> 
 
    </td> 
 
    <td> 
 
     <input type="text" name="Name" /> <span id="MITname"> </span> 
 
    </td> 
 
    </tr> 
 
    <br/> 
 
    <input type="submit" value="Submit" onclick="showinput()" /> 
 
    <br/> 
 
    <label>Your input:</label> 
 
    <p><span id="namedisplay"></span> 
 
    </p> 
 
</form>

Répondre

0

Peu de questions ici. (Aussi, bienvenue au développement Web!)

D'abord, vous ne créez jamais réellement la hasFocus variable. Donc, vous ne vérifiez jamais si c'est vrai/faux ou non.

En second lieu, où vous créez error2 signifie qu'il ne sera accessible dans le bloc if() il a été créé. Ainsi, dans le bloc if(error) suivant lorsque vous essayez d'y accéder, il retournera undefined. Troisièmement, lorsque vous créez error, vous définissez la valeur sur false, ce qui indique un type booléen, mais définissez ensuite sa valeur sur une chaîne, qui n'est définitivement pas un booléen.

Quatrièmement, la ligne var ary = [checkname]; est de me prêter à confusion. Je comprends que vous essayez de convertir le nom (de l'entrée?) À un tableau, mais ce n'est pas la façon de le faire. Vous pouvez accéder à chaque caractère du nom avec string.charAt(index), la création d'un tableau n'est donc pas vraiment nécessaire. Cinquièmement, votre validate() fonction dans son ensemble est très confus. Je n'ai aucune idée de ce que vous essayez de faire. Il semble que votre source d'enseignement vous ait induit en erreur, ou que vous n'ayez pas fait attention de près.

Je pourrais continuer, mais ceux (entre autres) les questions sont vraiment il est difficile de trouver exactement ce qui se passe mal, sans creuser trop dedans. Je ne veux pas écrire cela pour vous, et donc ma suggestion serait de recommencer, et peut-être d'acheter plus de tutoriels, peut-être d'une source différente. (Canal différent de youtube, etc.)

+0

Je suppose que la fonction validate devrait faire un tableau de toutes les formes puis appeler 'checkname' pour chaque formulaire ... à la place, il itère sur un tableau 1 variable pour appeler' checkname' – abc123

+1

c'est mon premier jour de classe et c'est autodidacte .. je Je ne suis pas sûr de ce que je suis en train de coder, mais je vise à faire une validation javascript .. sachant que ce code est horrible, c'est un peu déçu .. * soupir * merci tho, je l'apprécie. –

+0

@ Geni-sama, ne vous sentez pas mal, nous devions tous commencer quelque part.Ce que je suggère de faire est de regarder des vidéos de "intro to Javascript" en ligne, et de regarder les écoles W3, car elles ont d'excellentes choses pour les débutants. – FibreChips

0

Mon problème est la validation. Si je saisis un nom vide, un message d'erreur doit apparaître à côté de la zone de texte Nom pour indiquer un nom valide.

<!DOCTYPE html> 
 
<html> 
 
<head> 
 
    <title>JAVASCRIPT FORM VALIDATION</title> 
 
\t 
 
    <script type="text/JavaScript"> 
 
     function showMessage() 
 
\t \t { 
 
      var Name = document.getElementById("Name").value; 
 
      displayname.innerHTML= Name; 
 
\t \t \t 
 
\t \t \t var Email = document.getElementById("Email").value; 
 
\t \t \t displayemail.innerHTML= Email; 
 
\t \t \t 
 
\t \t \t var Website = document.getElementById("Website").value; 
 
\t \t \t displaywebsite.innerHTML= Website; 
 
\t \t \t 
 
\t \t \t var Comment = document.getElementById("Comment").value; 
 
\t \t \t displaycomment.innerHTML= Comment; 
 
\t \t \t 
 
\t \t \t var nameerror=''; 
 
\t \t \t var emailerror=''; 
 
\t \t \t var websiteerror=''; 
 
\t \t \t var commenterror=''; 
 
\t \t \t 
 
\t \t \t \t if (displayname.innerHTML=='') 
 
\t \t \t \t { 
 
\t \t \t \t nameerror = 'Please enter a valid name'; 
 
\t \t \t \t return false; 
 
\t \t \t \t } 
 
\t \t \t \t return true; 
 
     } 
 
    </script> 
 
\t 
 
</head> 
 

 
<body> 
 

 
Name: <input type="text" id = "Name"> <span id = "nameerror"> </span> 
 
<br></br> 
 
Email: <input type="text" id = "Email"> 
 
<br></br> 
 
Website: <input type="text" id = "Website"> 
 
<br></br> 
 
Comnent: <textarea cols="35" rows="7" id="Comment"> </textarea> 
 
<br></br> 
 

 
<input type="submit" onclick="showMessage()" value="submit" /> 
 

 
\t \t \t <p>Name: <span id = "displayname"></span> </p> 
 
\t \t \t <p>Email: <span id = "displayemail"></span> </p> 
 
\t \t \t <p>Website: <span id = "displaywebsite"></span> </p> 
 
\t \t \t <p>Comment: <span id = "displaycomment"></span> </p> 
 

 

 
</body> 
 
</html>

0
<form action="" name="form" onsubmit="return validate()"> 
    <tr> 
    <td align="right">Name:<font color="red">*</font> 
    </td> 
    <td> 
     <input type="text" name="Name" /> <span id="MITname"> </span> 
    </td> 
    </tr> 
    <br/> 
    <input type="button" value="Submit" onclick="showinput()" /> 
    <br/> 
    <label>Your input:</label> 
    <p><span id="namedisplay"></span> 
    </p> 
</form> 

Tout supprimer type = 'submit' dans votre code, il soumettra votre page en un clic une fois que vous cliquez sur soumettre les données de sont changement POST, donc utilisez le bouton en tant que type