2013-05-13 3 views
-1
<script> 
      function checkName(){ 
       var tmpName = document.getElementById("name"); 
       if(tmpName.value.length == 0){ 
        alert("Name cannot be empty"); 
        return false; 
       } 
       else 
        return true; 
      } 


      function confirmForm(formObj){ 
       var nameBool = new Boolean(); 
       var errorName = ""; 


       nameBool = checkName(); 

       if(nameBool == false) 
        errorName = "Invalid data in input name !"; 

       return window.alert("You have this error : \n " + errorName + "\n" + errorID); 
      } 

</script> 
<form name=reviewform onsubmit="return confirmForm(reviewForm)" method=POST > 
      <p>Name : <input type="text" id="name" ></p> 

      <p>ID : <input type="text" id="id" ></p> 

      <input type="submit" value="Click here!"> 
</form> 

mon problème est pourquoi ma fonction ne peut pas fonctionner ??? Quelque chose ne va pas? Est-ce que n'importe quel aîné peut m'apprendre où l'endroit je me trompe?appeler une autre fonction dans une fonction principale de javascript

i déjà editited et en plus que le nom de la forme et la fonction la façon dont il est un travail

je ne sais pas est pas ma mise en œuvre mal ou ce

+1

Quelle fonction ne fonctionne pas? Comment savez-vous qu'il ne fonctionne pas? Comment avez-vous essayé de le déboguer? –

+0

Dans le morceau de code donné, vous définissez simplement deux fonctions, sans les appeler. Pourriez-vous être plus précis ? –

+0

Un message d'erreur est-il survenu dans la console d'erreur de Firefox, Chrome, Safari? – reporter

Répondre

1

Les deux fonctions, mais ils ont besoin de travail, et vous clairement besoin de rafraîchir vos connaissances JS, peut courir, il suffit de les appeler. En l'état, vous venez de définir 2 fonctions. Rien d'autre.

Autres questions, ligne/ligne:

//second line: 
var tmpName = document.getElementById("name"); 

Ici, vous ne pouvez pas être sûr que cet élément est déjà plombé, peut-être le DOM n'est pas encore prêt, alors soyez prudent, juste envelopper votre code entier dans un gestionnaire:

window.onload = function() 
{ 
    //your code here, this gets executed after the page is fully loaded 
}; 

Ensuite, don't think of JS as some sort of Java-for-browsers, it's a completely different animal. Des trucs comme:

var nameBool = new Boolean(); 
var errorName = ""; 

est-il mieux écrit que la déclaration des variables, mais ne pas attribuer quoi que ce soit:

var nameBool, errorName; 

Si vous voulez être sûr que le nameBool est un booléen, juste assigner comme ceci:

nameBool = !!checkName();//double bang 

Il semble également que vous essayez de valider un formulaire ou de gérer un événement de soumission. Pourquoi ne pas utiliser addEventListener pour cela? ou, si vous insistez:

document.getElementById('formId').onsubmit = function(e) 
{ 
    //get event object: 
    e = e || window.event; 
    //this references form, as does (e.target || e.srcElement), you can access the elements it contains, and check them one by one 
}; 
Questions connexes