2010-11-06 27 views
1

J'ai défini un formulaire pour fadeOut en utilisant jQuery lorsque le mouseleaves le formulaire qui a un ID de #loginform_top. Cela fonctionne bien mais comme ce formulaire est une boîte de connexion quand firefox affiche les detials de saisie semi-automatique pour les champs de saisie dans cette forme l'action de déplacer la souris sur la saisie semi-automatique cache mon formulaire. Est-il loin d'être en mesure de sélectionner la saisie semi-automatique sans masquer le formulaire. Merci d'avoir regarder ceci. J'utilise le code suivant:Masquage d'un formulaire avec jQuery mais ne voulant pas qu'il se cache lorsque la saisie semi-automatique est lancée

$('#loginform_top').hide(); 
    $('.loginToggle').mouseover(function() { 
    if(!$('#loginform_top:visible').length) 
    { 
     $('#loginform_top').fadeIn('fast'); 
    } 
    }); 
    $('#loginform_top').mouseleave(function() { 
    $('#loginform_top').fadeOut('fast') 
    }); 

});

+0

Je l'ai arrondi à la fin en définissant la saisie semi-automatique sur off pour le champ de saisie –

Répondre

0

Vous souhaiterez peut-être agrandir le formulaire en y ajoutant <br /> s ou en définissant son attribut de style de hauteur. Cela peut être provoqué par la souris quittant le formulaire en cliquant sur les options d'auto-complétion (ce que je pense que vous avez décrit ci-dessus).

Je n'ai pas vérifié, mais vous pourriez peut-être combiner ceci avec onblur = "" qui indique quand la zone de texte n'est pas sélectionnée. Ensuite, votre autre code JavaScript peut référencer une variable définie ici.

+0

Bonjour oui c'est causé par la souris qui quitte le formulaire en cliquant sur les options de remplissage automatique. Au moment où vous cliquez sur l'option d'auto-complétion, il me semble que j'ai laissé mon

et cache le formulaire. Je veux l'empêcher de faire ça. –

+0

Comme je l'ai dit, faites le formulaire plus grand. – AJ00200

0

Il s'agit plus d'un hack, mais que faire si vous avez démarré un setTimeout dans le gestionnaire de mouseleave qui retarde le masquage du formulaire pour donner à l'utilisateur une chance de traiter la saisie semi-automatique.

Alternativement, vous pouvez fournir un "X" ou quelque chose pour permettre à l'utilisateur de rejeter le formulaire s'il choisit de ne pas se connecter, plutôt que d'utiliser le mouseleave. Cela suppose que la connexion et non est une option valide.

+0

Bonjour J'ai essayé le hack de seTimeout mais le problème avec ce hack est que la forme disparaît après le timeout. Si l'utilisateur n'appuie pas sur le bouton "Envoyer" avant la fin du délai, le formulaire disparaît. Si vous définissez l'intervalle sur un nombre élevé, alors lorsque le mouseleave le formulaire, alors le formulaire prend un certain temps à disparaître, ce qui se ressent. Il existe un menu déroulant qui permet à l'utilisateur de le fermer en appuyant sur le bouton utilisé pour l'ouvrir. Cependant, je veux aussi que le formulaire disparaisse quand ils font disparaître le formulaire. Y a-t-il un moyen d'autocompléter ne pas être considéré comme laissant le formulaire? –

+0

Je ne pense pas. La saisie semi-automatique est restituée par le navigateur lui-même et non par le document. La détection du document est donc un problème. En outre, coder ceci spécifiquement pour un navigateur peut ne pas être optimal. – Hollister