2010-06-13 7 views
1

Ok, je vais essayer de donner le plus de détails possible.document.getElementById ('nom_formulaire'). Submit() ne fonctionne pas correctement

Le site n'est pas conçu pour fonctionner avec IE6. Ce serait bien si cela fonctionnait avec IE8 et Chrome, mais cela peut être fait plus tard.

Le site est en PHP. Le formulaire où le submit est dans un autre fichier PHP qui est inclus dans la position sur l'index.php à l'intérieur d'un tag DIV.

Si j'ouvre le formulaire uniquement, l'envoi fonctionne correctement, mais lorsque j'essaie de soumettre sur la page d'index, la console d'erreur de Firefox dit que le document est indéfini. Le code du formulaire est renvoyé ligne par ligne via PHP. Enregistrer les champs de texte pour le nom d'utilisateur et mot de passe, le code de formulaire est le suivant:

<form id="entrar" action="entrar.php" method="post" onsubmit="javascript:checkvalues();"> 
    <a href="javascript:document.getElementById('entrar').submit();">ENTRAR</a> 
</form> 

Quel est le problème? Qu'est-ce que j'oublie ici? Je sais que c'est quelque chose de très stupide mais je ne peux pas le comprendre.

+0

Vérifiez la source de votre page et assurez-vous qu'il n'y a pas d'autre élément avec le même ID. – TheDeadMedic

+0

Ewww! N'utilisez pas de liens pour soumettre des formulaires! Cela ne fera qu'énerver les gens qui ont l'habitude de simplement appuyer sur la touche Entrée pour les soumettre! UTILISEZ UN BOUTON DE SOUMISSION! – animuson

+0

Son considéré comme une mauvaise pratique de placer javascript dans le href d'une ancre ces jours-ci. Il est également agréable de séparer le balisage de la logique. Si vous rencontrez des problèmes pour faire fonctionner le script sur tous les navigateurs, alors jQuery vous sera très utile. –

Répondre

3

Avant jQuery répond.

<form id="entrar" action="entrar.php" method="post" onsubmit="javascript:checkvalues();"> 
    <a id="entrar-link" href="#">ENTRAR</a> 
</form> 

<script> 
(function() { 
var entrar = document.getElementById('entrar'), 
link = document.getElementById('entrar-link'); 

link.onclick=function() { entrar.submit() } 

})(); 
</script> 

Bottom line est ne pas user href pour exécuter javascript. Faites-le discrètement (dans un élément de script). Assurez-vous que le script vient après le balisage ou si vous avez l'intention de le mettre dans la tête, invoquez la fonction sur window load/dom ready.

Bien honnêtement, je ne sais pas pourquoi vous venez de faire:

<input type=submit value=go> 

À moins que vous faites cela pour un but bizarre stylistique, que vous pouvez également utiliser probablement input type=image car si vous n'êtes pas sûr de savoir comment pour styliser correctement les soumissions.

+0

Je ne peux pas utiliser un bouton d'entrée. Malheureusement pour moi, je ne suis pas responsable de la mise en page de la page Web, et le client veut un lien texte. Je suis sur le point de laisser tomber l'idée de javascript et d'aller CSS restyling le bouton de soumission en tant que texte. –

+0

Il ne devrait pas être sur ce que le webmaster veut, il devrait être sur ce qui est le plus pratique pour les utilisateurs. Vous savez, ces gens qui vont réellement apporter des bénéfices. – animuson

Questions connexes