2010-07-23 4 views
0

J'ai un type une liste déroulante de tête que j'ai créée. De toute évidence, je devais activer l'AutoPostBack à false, car sinon, il reviendrait lorsque l'utilisateur tapait. Mais je veux repousser quand l'utilisation a fait sa sélection. Je ne veux pas utiliser un bouton de soumission ou quoi que ce soit de ce genre. Longue histoire, fais moi confiance, ce n'est pas la solution pour ma situation.postback sur cliquez pour taper en avant menu déroulant

Dans le javascript qui fait le type à venir lorsque l'utilisateur clique sur entrer, je publie. Cela fonctionne très bien.

Cependant quand whast à propos de quand l'utilisateur clique avec la souris? J'utilise donc l'événement onblur pour la publication. Cependant, cela nécessite de cliquer en dehors de la liste déroulante.

Je veux que la publication se produise lorsqu'ils cliquent sur le nouvel élément. Donc, comme une publication quand itemchanged, mais seulement si je l'ai changé en cliquant dessus.

Des idées ???

+0

Aucune idée? Je suis toujours à la recherche d'une solution ... – kralco626

+0

L'utilisation d'onblur pour une publication est dangereuse, dans la mesure où tout ce qui entraîne une perte de focus de votre contrôle provoque une publication. – funkymushroom

+0

Oui. Je suis d'accord, car même si vous cliquez sur le ddl puis cliquez dessus, il sera postback. Mais alors que cela est anoying, il n'a aucun effet négatif sur l'application web et bat en utilisant selectionChanged, car le type à venir ne fonctionnera pas. Mais je suis ouvert à d'autres suggestions tous ensemble ...? – kralco626

Répondre

0

Fournir à votre aide d'une version à jour de type Ahead, la bibliothèque est en fait un ensemble de fonctions de rappel qui sont disponibles here.

Pour exécuter un rappel, il suffit de passer dans par une méthode de liaison lors de l'initialisation tapez à l'avance. Exemple de code:

 // attach type-ahead to class 
     $autoComplete.typeahead({ 
      hint: true, 
      highlight: true, 
      minLength: 1 
     }, { 
      displayKey: 'value', 
      source: substringMatcher($autoCompleteData) 
     }).bind("typeahead:selected", function (obj, datum, name) { 
      console.log(obj, datum, name); 
     }); 

La méthode .bind à la fin exécutera lorsque l'utilisateur clique soit une option ou frappe la touche de retour sur une option. Remplacez l'entrée console.log par ce que vous voulez faire, c'est-à-dire que vous ciblez un bouton d'envoi par un clic.