2010-09-29 5 views
6

J'ai ce code, laisser dire qu'il est a.htmlForm "est non défini" erreur dans Firefox

<form name="frmSubmit" id="frmSubmit" method="post"> 
<input type="hidden" name="hdnName" value="user name" /> 
</form> 

<script> 
// 1 : start 
document.frmSubmit.action = 'b.html'; 
document.frmSubmit.submit(); 
// 1 : end 

// 2 : start 
document.getElementById("frmSubmit").action = 'b.html'; 
document.getElementById("frmSubmit").submit(); 
// 2 : end 
</script> 

deux et travaillent dans IE (IE 8), mais pas dans FF (3,6 .dix). Firebug me donne l'erreur suivante:

document.frmSubmit is undefined

Comment puis-je résoudre ce problème?

+0

Les deux méthodes devraient fonctionner correctement (et faire, pour moi). Je soupçonne que votre erreur se situe ailleurs et ce n'est pas une représentation fidèle du code que vous avez. Voir http://jsfiddle.net/VL8C3/, j'ai remplacé vos méthodes par des sorties de console simples, donc vous pouvez voir 'document.frmSubmit' * est * défini. –

+0

est-ce un

doit à l'intérieur ? ou c'est un bug? J'ai essayé d'ajouter simple

abcd

avant , et c'est de travail: D – tsurahman

+0

@Andy: le script exactement le même que ci-dessus script – tsurahman

Répondre

1
<html> 
<head> 

<script> 
function setup(){ 
// 1 : start 
document.frmSubmit.action = 'b.html'; 
document.frmSubmit.submit(); 
// 1 : end 

// 2 : start 
document.getElementById("frmSubmit").action = 'b.html'; 
document.getElementById("frmSubmit").submit(); 
// 2 : end 
} 
</script> 
</head> 
<body onload="setup()"> 
<form name="frmSubmit" id="frmSubmit" method="post"> 
<input type="hidden" name="hdnName" value="user name" /> 
</form> 
</body> 
</html> 
+0

@tsurahman votre commentaire n'est pas clair. –

+0

abcd

.... ça marche, ou
... ça marche, il me semble que je dois ajouter un autre tag avant pour que ça fonctionne – tsurahman

0

Habituellement, quand je vais coder ces workarrounds, pour éviter une erreur d'arrêter l'exécution, j'entourent des blocs en conflit avec essayer & cathc. Je recommanderais d'entourer et avec try/catch bloks, donc il y a une erreur, il ne bloque pas l'exécution du script.

0

J'ai eu ce même problème, et a réussi à le faire fonctionner en procédant comme suit:

  • Avoir un ImageButton ou tout autre type d'objet postback sur votre formulaire qui affiche ce que vous voulez ("acheter maintenant ! ")
  • Avoir un événement dans codebehind pour savoir quand on a cliqué dessus.
  • Au clic de l'événement, effectuez une réponse. Redirigez vers une nouvelle page que vous allez créer (postpaypal.aspx).
  • Créer un nouveau fichier (postpaypal.aspx), qui n'utilise pas de page maître, a sa propre forme et le code et les actions standard paypal.

Cela a fonctionné magnifiquement pour moi, et était simple et efficace.

0

S'il vous plaît vérifier si vous avez donné, input type = "submit" name = "submit" value = "Continuer"

Au lieu de cela, le nom devrait être comme ce type d'entrée = "submit" name = « sub » value = « Continuer »

NB: le nom doit être autre que « soumettre »

Questions connexes