Question

Pour une raison quelconque de saisie semi-automatique jQuery UI a cessé de travailler pour moi. Je reçois la même erreur que celle décrite sur cette page .

J'ai copié le contenu de la requête de cette page Web ci-dessous, en espérant que quelqu'un ici sera en mesure de répondre.

Merci!

J'utilise Jquery UI Autocomplete pour obtenir une liste de noms. Mais pour une raison quelconque, je reçois une erreur:

text alt

$('#repName').removeAttr('readonly').focus(function () {
                   $(this).val('');
               }).autocomplete({
                   source: function (request, response) {
                       tagId = $('#TagId').val();
                       $.ajax({
                           url: '/Developement/GetRepName', type: 'POST', dataType: 'json',
                           data: { searchText: request.term, maxResults: 10, tagId: tagId },
                          success: function (data) {
                              response($.map(data, function (item) {
                                  return {
                                      label: item.Name,
                                      value: item.RepId,
                                      id: item.RepId
                                  }
                              }))
                          }
                      })
                  },
                  select: function (event, ui) {
                      commissionAllicationModifications(ui.item.id, 0, 'A');
                  }
              });

Je n'ai aucune idée pourquoi cela se passe. J'utilise l'interface utilisateur JQuery 1.8.1.

J'apprécierait tout type d'aide à ce sujet.

Il provient du fichier jQuery UI 1.8.1, spécifiquement Autocomplete jQuery UI 1.8.1.

 .menu({
               focus: function (event, ui) {
                   var item = ui.item.data("item.autocomplete");
                   if (false !== self._trigger("focus", null, { item: item })) {
                       // use value to match what will end up in the input, if it was a key event
                       if (/^key/.test(event.originalEvent.type)) {
                           self.element.val(item.value);
                       }
                   }
               },
               selected: function (event, ui) {
                   var item = ui.item.data("item.autocomplete");
                   if (false !== self._trigger("select", event, { item: item })) {
                       self.element.val(item.value);
                   }
                   self.close(event);
                   // only trigger when focus was lost (click on menu)
                   var previous = self.previous;
                   if (self.element[0] !== doc.activeElement) {
                       self.element.focus();
                       self.previous = previous;
                   }
                   self.selectedItem = item;
               },
*                blur: function (event, ui) {
*                    if (self.menu.element.is(":visible")) {
*                        self.element.val(self.term);
*                   }
*               }
           })
           .zIndex(this.element.zIndex() + 1)
           // workaround for jQuery bug #5781 http://dev.jquery.com/ticket/5781
           .css({ top: 0, left: 0 })
           .hide()
           .data("menu");

Il est étrange que parce que cela fonctionne parfaitement dans un autre projet. Ce que je remarqué est lorsque le code frappe la section [vedette] la section self.menu est non défini. Une autre chose à noter est qu'il n'envoie même pas la demande. Je pensais que cela pourrait être ma fonction de mise au point.

.focus(function () {
     $(this).val('');

Mais ce n'est pas. Merci pour votre aide.

Était-ce utile?

La solution

Il se trouve que j'ai inclus un plug-in qui a défini $.fn.menu et ce fait des ravages. Je l'ai changé pour $.fn.fg_menu et le problème a été résolu.

Autres conseils

Quelle est la version de base jQuery utilisez-vous?

Je connais un bug lié à détection visible et en rapport avec IE8 . Si possible, vous pouvez passer à la plus récente sur jQuery une machine de test et voir si cela résout votre problème?

Si vous ne vous sentez pas comme la mise à niveau, vous pouvez également essayer le piratage jQuery (UGLY!) - avec cette :

if (self.menu.element.is(":visible"))

devient

if (!(self.menu.element.css('display') == 'none'))

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top