IE 11 ne peut pas soumettre un formulaire HTML
J'ai ce formulaire HTML
<form name="nextform" action="anotherpage.php" method="post" enctype="multipart/form-data">
<input name="pinid" id="pinid" type="hidden">
<input type="submit" name="submit" id="post" value="Lets Go" class="formButtonMap">
</form>
pinid
dynamiquement obtient une valeur à l'aide de JavaScript. Quand il obtient une valeur que j'ai d'alerte et il fonctionne.
Mais, quand je clique sur le Lets Go
bouton, rien ne se passe. Je vois l'Internet Explorer de chargement pour un couple de minutes, puis je reçois le message “La page web ne répond pas”. Si j'ai cliquer sur "actualiser" il va à anotherpage.php
mais les valeurs du formulaire n'est pas arrivé sur le serveur.
Montre rarement ce message:
Visual Studio Juste-À-Temps Débogueur
Une exception win32 non gérée s'est produite dans iexplorer.exe [688]
Possible Débogueurs :
Nouvelle Instance de Microsoft Visual Studio 2012
Ce comportement est observé uniquement dans Internet Explorer 11.0.2. La forme des œuvres dans les anciennes versions d'Internet Explorer et aussi dans Chrome et Firefox. Je n'ai pas d'erreurs dans IE console.
Voici le code JavaScript, placé au-dessus de la forme:
//called when another button is clicked - basicaly is websockets
function save() {
var so = new WebSocket("ws://localhost:8000");
so.onerror = function (evt) {
alert('problem');
}
if (sara == 'LINES') {
so.onopen = function() {
so.send(JSON.stringify({
command: 'insertAll',
name: document.getElementById('name').value
}));
}
}
if (sara == 'POLY') {
so.onopen = function() {
so.send(JSON.stringify({
command: 'insertHalf',
name: document.getElementById('name').value
}));
}
}
so.onmessage = function (evt) {
var received_msg = evt.data;
document.getElementById("next").style.display = "block";
document.getElementById("name").value = "";
document.getElementById("descr").value = "";
clearLinks();
document.getElementById("pinid").value = received_msg;
alert(document.getElementById("pinid").value); //works
so.close();
}
}
J'ai essayé de modifier le code à l'aide de document.getElementById("nextform").submit();
, le problème est toujours là.
Est-ce moi? Est-ce un bug? Ce qui me manque?
- pourquoi avez-vous besoin d'une valeur dans la soumettre des commentaires?
- C'est le "nom" du texte que les utilisateurs se voit. Il peut être "Télécharger" ou "retour". Vous suggérez que je devrais le supprimer?
- Votre page en réalité les postes, si vous voyez que, donc, le problème ne semble pas être le bouton lui-même. Pourrait être quelque chose de mal avec la redirection de la page?
- Puisque vous n'êtes pas le téléchargement d'un fichier, peut-être l'essayer sans le enctype="multipart/form-data"?
- Par la description, le plus probable que le problème est sur
anotherpage.php
, postez votre formulaire à l'autre (de préférence vide) de la page et voir si cela fait la même chose. Également l'affichage du code deanotherpage.php
pourrait l'aider. - Pouvez-vous changer id="post" à quelque chose d'autre que "post"?
Vous devez vous connecter pour publier un commentaire.
Je crois que c'est un bug lors du réglage des valeurs d'un formulaire à vide dans IE.
Je suggère d'essayer une autre méthode pour réinitialiser les valeurs d'un formulaire, j'ai utilisé cette méthode dans le passé:
save()
. Cette fonction permet également d'effacer les champs à l'aide de JS. Le bug dans ce formulaire accidents de lanextform
forme et le navigateur. Je m'excuse de ne pas poster tout mon code, je ne savais pas qu'il avait à faire avec la première forme. Je n'ai PAS posé la même question deux fois. Parce que je pensais que le même code a deux problèmes différents. S'avère , de son le même problème. J'ai demandé à celui-là en premier.Merci quand mêmePeut-être pas votre problème, mais:
Donnant une forme de contrôle d'un nom de soumettre remplacera le formulaire soumettre méthode de référence pour le contrôle, afin de l'appelant
form.submit()
va tenter de "appel" à l'entrée.GET
au lieu dePOST
. Me rend fou, ne peut pas le résoudre. Peut-être que tout autre conseiller? Rien ne va. Je ne peux pas le faire fonctionner.salut peut-être un problème dans votre code, vous manquez d'ajouter l'id du formulaire et vous essayez d'accéder au formulaire en c'est l'id qui vous définit pas.
son
Trace par le biais de ce qui se passe dans le anotherpage.php page lorsqu'il reçoit la publication, evt.les données pourraient ne pas être codée comme vous le souhaitez (c'est binaire ou texte, si le texte, c'est de l'utf-8).
Publication à une autre page où il n'est de sortie posté le retour des valeurs.
Ne le socket proche de lever une exception?
Mon code d'origine a un formulaire avec plus de 5 champs. Lorsqu'il est soumis appelle le
save()
.save()
fonction efface également les champs à l'aide de JS.Il y a un bug dans IE11, qui bloque le navigateur si vous essayez d'effacer plus de 5 champs , à l'aide de JS. Voir ici , il existe une solution de contournement.
Ce bug qui fait planter le premier formulaire, puis le
nextform
forme et le navigateur. Je m'excuse de ne pas poster tout mon code, je ne savais pas qu'il avait à faire avec la première forme.Parce que je pensais que le même morceau de code a deux problèmes différents , j'ai posté une autre question, très semblable , ici
Dans mon cas, le bouton d'entrée a le même ID et NOM. Ainsi, vous pouvez vérifier si elles sont les mêmes et si en effet ils sont de la même valeur différente pour l'un des paramètres.
J'espère que cela aide.