2013-04-17 3 views
12

J'ai un formulaire avec <input type="submit". En chrome soumettre ne fait rien. Sur un "réseau" dans l'onglet dans les outils de développement, je ne vois rien. Pas d'erreurs dans les outils de développement non plus. En attendant, si je sauvegarde une page et que j'ouvre une page sauvegardée, alors après que j'appuie sur le bouton soumettre, je vois quelque chose apparaître dans l'onglet "réseau". Cela arrive en chrome et firefox. Cela fonctionne comme prévu dans IE.Le bouton Envoyer ne fonctionne pas

Est-ce que quelqu'un a du recul, que dois-je regarder?

EDIT: Je n'ai pas besoin d'une réponse directe, j'ai juste besoin de savoir, où devrais-je regarder. Si quelqu'un publie une directive et que cela m'aidera à résoudre mon problème, je l'accepterai comme une réponse correcte.

EDIT2: Structure d'une page ressemble à ceci:

html 
    head 
    body 
     div 
     div 
      form 
      form 
      form 
      form 
      form 
       input 
       input 
       table 
       table 
        tbody 
         tr..td..input type=submit 

EDIT3: Nous avons trouvé le problème réel, il est que dans une page un lien, contenant href="#" et après avoir cliqué sur ce lien Soumettre un arrêté pour travail, car # a été ajouté à la fin de l'URL et parce que action du formulaire était vide, donc il a ramassé URI de l'URI en cours, qui contenait # au, donc au lieu de soumettre, le navigateur a sauté sur une page actuelle.

+8

Nous avons besoin de code ... – Jace

+0

@Jace lorsque j'ouvre une page depuis mon application web, le problème est là, mais si je sauvegarde une page, je fais quelque chose. Donc, le code HTML ne va pas aider ici. Aussi, je n'ai pas besoin d'une réponse directe, quel est le problème. J'ai seulement besoin d'une direction, de quoi regarder. – dhblah

+1

... est-ce à l'intérieur du formulaire? Le formulaire est-il bien formé ou a-t-il du code HTML cassé? Le formulaire a-t-il une action et une méthode, et sont-ils corrects? Développez-vous cela localement, et en utilisant des chemins relatifs, quand il devrait être exécuté sur un serveur/localhost? Nous n'avons aucune idée ... – Norguard

Répondre

10

Si vous n'utilisez pas de javascript/jquery pour la validation de formulaire, une présentation simple de votre formulaire ressemblerait à ceci.

dans le corps de votre document html:

<form action="formHandler.php" name="yourForm" id="theForm" method="post">  
    <input type="text" name="fname" id="fname" />  
    <input type="submit" value="submit"/> 
</form> 

Vous devez vous assurer d'avoir le bouton d'envoi dans les balises de formulaire et une action appropriée assignée. Comme l'envoi à un fichier php.

Pour une réponse plus directe, indiquez le code avec lequel vous travaillez.

Vous trouverez peut-être la suite de l'utilisation: http://www.w3.org/TR/html401/interact/forms.html

+0

Merci beaucoup, je pense que peut-être un problème est qu'il y a un attribut d'action vide sous cette forme. Je vais enquêter plus loin. – dhblah

+0

Dans mon cas, j'avais un div absolument positionné avec aucun contenu qui était superposé sur le dessus du bouton. Copié et collé le balisage d'un exemple et m'a pris des jours pour déterminer que l'élément invisible était le coupable. –

12

Utilisez-vous HTML5? Si oui, vérifiez si vous avez <input type="hidden"> dans votre formulaire avec la propriété required. Supprimez cette propriété required. Internet Explorer ne prendra pas cette propriété, donc cela fonctionne mais Chrome le fera.

+0

C'était sur. Je ne sais pas combien de temps cela m'aurait pris de penser à ça. –

3

Vérifiez si vous utilisez une sorte de jquery/validation javascript sur la page et essayez de le désactiver et de voir ce qui se passe. Vous pouvez utiliser les outils de développement de votre navigateur pour voir si un fichier javascript avec validation ou validation est en cours de chargement. Vous pouvez également rechercher des éléments de formulaire masqués (par exemple, style défini pour afficher: none ou quelque chose comme ça) et vous assurer qu'il n'y a pas d'erreur de validation cachée sur ceux qui ne sont pas rendus.

+1

Vous m'avez sauvé, mais avez-vous une idée de la façon d'obtenir un formulaire de soumission et de validation de formulaire avec le même bouton? –

+0

Oui, cela devrait idéalement fonctionner avec de nombreuses bibliothèques et outils de validation. Ils devraient juste se lier avec le formulaire. Si la soumission du formulaire ne fonctionne pas, alors quelque chose est probablement cassé. Par exemple, j'ai trouvé un bogue dans une version particulière du plugin jquery validate qui était utilisé par le site open source Nuget Gallery. Il validait correctement en fonction de l'extension du fichier, mais le bogue empêchait l'affichage de l'erreur de validation. J'ai donc corrigé le bogue, bien que je n'ai pas paresseusement envoyé une demande d'extraction pour corriger le bogue dans leur bibliothèque. –

3

Je fait face à ce problème aujourd'hui, et la question est que j'étais obstacle à toute action par défaut de l'événement dans le document onclick:

document.onclick = function(e) { 
    e.preventDefault(); 
} 

document onclick est utilisé habituellement pour la délégation de l'événement, mais il est faux d'éviter par défaut pour chaque événement, vous Je dois le faire uniquement pour les éléments requis:

document.onclick = function(e) { 
    if (e.target instanceof HTMLAnchorElement) e.preventDefault(); 
} 
1

J'ai rencontré le code HTML d'un ami et dans son cas, il lui manquait des guillemets.

Par exemple:

<form action="formHandler.php" name="yourForm" id="theForm" method="post">  
<input type="text" name="fname" id="fname" style="width:90;font-size:10>  
<input type="submit" value="submit"/> 
</form> 

Dans cet exemple, une citation manquante sur le FNAME texte d'entrée sera tout simplement rendre le bouton d'envoi non utilisable et la forme ne sera pas soumettre.

Bien sûr, c'est un mauvais exemple parce que je devrais utiliser CSS en premier lieu;) mais de toute façon, vérifiez toutes vos guillemets simples et doubles pour voir qu'ils se ferment correctement.

De même, si vous avez des balises telles que le centre, déplacez-les hors du formulaire.

<form action="formHandler.php" name="yourForm" id="theForm" method="post"> 
<center> <-- bad 

Aussi étrange que cela puisse paraître, il peut avoir un impact.