2010-09-03 6 views
2

en essayant de faire un formulaire d'inscription avec vérification de validation ajax. le contrôle de validation est OK. je lui fais montrer une image cross.png quand il y a un problème au sujet d'un champ sur le formulaire. Mais ce que je veux faire maintenant est de ne pas laisser les visiteurs appliquer le formulaire d'inscription quand il y a un problème.Vérification de l'intérieur de l'étiquette div avec innerhtml en javascript?

j'ai essayé de vérifier les erreurs par

if(document.getElementById('username_error_icon').innerHTML!='<img src="cross.png" width="15" height="15" />'){ 
document.form1.submit();  
} 

qui ne marchait pas:/ im ouvert à la suggestion s'il vous plaît aider:/

+0

Cela devrait vraiment être demandé sur Stack Overflow , pas SU, comme c'est une question de programmation. Vous devriez trouver que la communauté ou un modérateur migre la question pour vous sous peu. – DMA57361

+0

Pourriez-vous faire une alerte (document.getElementById ('nom_utilisateur_error_icon'). InnerHTML) et nous faire savoir ce qu'il montre? – XstreamINsanity

Répondre

1

La valeur innerHTML exacte d'un élément n'est pas quelque chose qui est constante à travers tous les navigateurs. Vous ne devriez pas compter dessus. Certains navigateur réorganiser l'ordre des attributs, réécrire le chemin de la "src".

Vous devriez faire quelque chose le long que:

function isValid() { 
    // Do your test and return true/false 
} 

// ... 

function functionWhereYourCodeIs() { 
    if (isValid()) { 
     document.form1.submit(); 
    } 
} 
+0

mais le problème est la fonction valide qui ajoute également sur la page est en code php qui est appelée avec la méthode ajax. donc je ne sais pas comment envoyer à la fois le code html de l'image et la valeur de validation d'un code php –

1

Ce n'est pas une bonne idée de valider quelque chose comme cela, en comparant deux chaînes qui peuvent changer.

Au lieu de cela, je vous recommande de fixer une variable comme bErrOccurred = true où vous définissez la source de l'image à cross.png puis votre instruction if devrait ressembler à ce qui suit:

if(!bErrOccurred) { 
    document.form1.submit(); 
} 
1

Eh bien si vous voulez toujours de le faire, vous pouvez le faire

<div id="username_error_icon"> 
     <img id="myValidationImage" src="cross.png" width="15" height="15" /> 
    </div> 

<script type="text/javascript"> 
    var validationImage = document.getElementById('myValidationImage').src; 
    var imageName = validationImage.lastIndexOf('.'); 
    validationImage = validationImage.substring(validationImage.lastIndexOf('/') + 1, imageName < 0 ? validationImage.length : imageName); 
    if (validationImage != "cross") 
     document.form1.submit(); 
    </script> 
0

ok comme il semble que je vais devoir changer tout le code ajax pour obtenir seul résultat de validation comme une variable de php sans balises html, etc.

0

ok problème résolu. en changeant le code php qui renvoie l'information au code ajax. J'ai changé le code php pour renvoyer le résultat de la validation sans balise html mais avec 0 ou 1 ou 2 etc. puis j'ai changé le code javascript pour faire les changements en html dédiés à ces valeurs retournées