2010-04-15 7 views
0

Fondamentalement, j'ai un site Web asp.net avec des pages de connexion et de recherche. Actuellement, je ne sais pas pourquoi, lorsqu'un utilisateur clique sur l'une des zones de texte de connexion (nom d'utilisateur/mot de passe) ou dans la zone de texte Recherche, le site Web est redirigé vers la page par défaut. Je n'ai aucune idée pourquoi cela se produit, j'ai essayé de définir defaultButton sur le panneau contenant la recherche et le panneau de connexion, mais cela ne semble pas fonctionner.ASP.net Zone de texte Entrée bouton enfoncé enfoncé

J'ai également essayé d'attraper l'événement de presse de clé avec javascript qui ne fonctionne pas non plus.

Je n'ai aucune idée de l'événement qui est en train d'être déclenché et pourquoi, ou pourquoi il semble remplacer tout ce que j'essaie de faire.

Quelqu'un a déjà vu quelque chose comme ça?

--------------- Modifier -------------------

<div class="searchBar" onkeypress="javascript:return 
    WebForm_FireDefaultButton(event,'ctl00_MainContent_logView1_LogRepeater_ctl02_lbSearch')"> 

    <input name="ctl00$MainContent$logView1$LogRepeater$ctl02$ctl02" type="text" /> 
    <a id="ctl00_MainContent_logView1_LogRepeater_ctl02_lbSearch" href="javascript:__doPostBack('ctl00$MainContent$logView1$LogRepeater$ctl02$lbSearch','')"> 
    Search</a> 
</div> 

Ok est donc ici le code généré par ASP.net qui est ignoré.

Mise à jour --------------- ----------------

J'ai essayé d'ajouter un bouton caché et paramètre bouton comme le bouton par défaut du formulaire et qui l'a empêché de rediriger vers la page par défaut à chaque fois mais cela signifie que presser entrer dans une zone de texte recharge juste la page, ce qui est mieux mais n'est toujours pas idéal.

+1

Montrez-nous votre code? –

+0

Pouvez-vous poster une partie du code incriminé? Sinon, nous ne faisons que deviner. – vfilby

+0

Si vous pouvez réduire cela au code minimum qui se répète et ensuite poster le code cela aiderait beaucoup. – ChrisF

Répondre

1

Il ne s'agit peut-être pas d'une anomalie ASP.NET autant que d'un problème de navigateur Web.

Lorsque vous appuyez sur Entrée dans un champ de texte d'une seule ligne, le navigateur soumet le formulaire à l'action spécifiée dans l'étiquette de formulaire.

ASP.NET « obligeamment » crée une étiquette de forme juste à l'intérieur de la balise body et met tous les éléments du corps à l'intérieur ...

Pour autant que je sache, vous pouvez supprimer en toute sécurité cette balise form; la spécification HTML autorise les champs en dehors des balises de formulaire à utiliser dans les opérations JavaScript/AJAX.

0

J'ai déjà vu ce comportement, il s'est produit lorsque le premier bouton du formulaire était le LoginControl. Chaque fois que l'entrée était enfoncée, elle déclenchait l'événement click pour la connexion et essentiellement déconnectait l'utilisateur. Utilisez-vous le LoginControl? En fin de compte, j'ai dû ajouter un bouton caché avant le contrôle de connexion. Le bouton caché n'a rien fait mais il a empêché l'exécution de LoginControl.

0

J'ai eu ce même problème une fois. Nous avions un formulaire de connexion qui fonctionnait correctement lorsqu'un utilisateur tapait Entrée. Puis, à un moment donné, nous avons ajouté un champ/bouton de recherche dans la barre de menu en haut de la page. Soudain, lorsque les utilisateurs frappent entrer, ils essaient d'effectuer une recherche. Je l'ai résolu en mettant le .DefaultButton du formulaire pour la page à mon bouton de connexion.

Questions connexes