2009-10-22 8 views
1

Dans mon fichier HTML, j'ai une fonction JavaScript nommée "CheckCaptcha". J'utilise la ligne de code suivante pour exécuter cette fonction quand une image est cliquée. Ça ne marche pas. Après des heures de peaufinage et de modification du code, il ne s'agit pas simplement d'atteindre l'emplacement où se trouve la fonction JavaScript.[HTML/JavaScript]:

J'utilise cette ligne de code:

<input type="image" src="images/join.gif" name="SubmitStudent" onclick="CheckCaptcha();" width="98" height="31"/>

La section JavaScript est comme ci-dessous:

<script type="text/javascript"> 
function CheckCaptcha() 
{ 
    aler("-"); 
    var CaptchaWord; 
    CaptchaWord = document.getElementById(StudentCaptchaImage); 
    alert(CaptchaWord); 
    if (CaptchaWord.length <= 4) 
    { 
     alert("Please enter words as seen in the image."); 
     return false; 
    } 
} 
</Script> 

En fait, je suis un nouvel utilisateur, et StackOverflow me évite d'afficher la section HTML complète.

+0

Pouvez-vous poster le script partie? – rahul

+0

C'est un appel JavaScript parfaitement valide, tant que la fonction est dans la portée. Etes-vous sûr que la fonction est disponible depuis cet "emplacement", ou est-elle incluse dans un autre objet? –

+0

Bienvenue. Vous pouvez poster le HTML comme code - le coller, et cliquer sur le bouton 'Code' - 101010. – Kobi

Répondre

4

Essayez ceci:

function CheckCaptcha() 
{ 
    alert("-"); 
    var CaptchaWord = document.getElementById('StudentCaptchaImage'); 
    alert(CaptchaWord); 
    if (CaptchaWord.value.length <= 4) 
    { 
     alert("Please enter words as seen in the image."); 
     return false; 
    } 
} 
  • l'attribut .value contient la valeur, l'élément DOM ne possède pas une propriété length.
  • La méthode gEBI prend une chaîne, pas un identificateur comme vous l'avez eu .. sauf si c'était une variable. Votre exemple a eu une faute de frappe dans la première alerte, je suppose que vous l'avez récemment ajouté et ce n'était pas le problème initial.

Si vous n'êtes pas sûr de ce que vous devriez commencer à alerter autant de choses que possible ..

alert(typeof CaptchaWord.length) 
+0

J'utilisais des guillemets doubles dans getElementByID, alors qu'une seule citation est nécessaire. Merci. – RKh

1

Avez-vous vérifié pour les erreurs dans JavaScript qui peuvent ne pas être liées à cette fonction particulière? Utilisez Firebug pour trouver des erreurs j'ai essayé code suivant et son travail

<script> 
    function CheckCaptcha(){ 
     alert("test"); 
    } 
</script> 
<input type="image" src="images/join.gif" name="SubmitStudent" onclick="CheckCaptcha();" width="98" height="31"/> 
+1

+1 pour des conseils sur le débogage! – lexu

0

Avez-vous essayé de retourner faux pour annuler la bulle d'événement?

 
onclick="CheckCaptcha(); return false" 
2

Assurez-vous getElementById prend une chaîne:

CaptchaWord = document.getElementById("StudentCaptchaImage"); 
+0

+1 ... Je pense que c'est le problème – Xinus

+0

votre élément DOM n'a pas de propriété 'length' - essayez le mien si ce n'est pas le cas. –