Rozwijam formularz i używam autouzupełniania interfejsu użytkownika jQuery. Gdy użytkownik wybierze opcję, chcę, aby zaznaczenie pojawiło się w zakresie dołączonym do <p>
tagu nadrzędnego . Następnie chcę, aby pole zostało wyczyszczone, a nie wypełnione zaznaczeniem.
Wydaje mi się, że rozpiętość jest w porządku, ale nie mogę oczyścić pola.
Jak anulować domyślną akcję wyboru funkcji autouzupełniania interfejsu użytkownika jQuery?
Oto mój kod:
var availableTags = ["cheese", "milk", "dairy", "meat", "vegetables", "fruit", "grains"];
$("[id^=item-tag-]").autocomplete({
source: availableTags,
select: function(){
var newTag = $(this).val();
$(this).val("");
$(this).parent().append("<span>" + newTag + "<a href=\"#\">[x]</a> </span>");
}
});
Po prostu działanie $(this).val("");
nie działa. Irytujące jest to, że prawie dokładna funkcja działa dobrze, jeśli zignoruję autouzupełnianie i po prostu podejmę działanie, gdy użytkownik wpisze przecinek jako taki:
$('[id^=item-tag-]').keyup(function(e) {
if(e.keyCode == 188) {
var newTag = $(this).val().slice(0,-1);
$(this).val('');
$(this).parent().append("<span>" + newTag + "<a href=\"#\">[x]</a> </span>");
}
});
Prawdziwym rezultatem końcowym jest autouzupełnianie do pracy z wieloma zaznaczeniami. Jeśli ktoś ma jakieś sugestie, byłby mile widziany.
źródło
$(this).val('');
).val('')
musi nadal występować.return false;
Zapobiegnie jedynie tekst zaznaczony element w pojawianiu się w polu wejściowym.Zamiast zwracać false, możesz również użyć event.preventDefault ().
źródło
return false jest potrzebne w wywołaniu zwrotnym wyboru, aby opróżnić pole. ale jeśli chcesz ponownie kontrolować pole, tj. ustawić wartość, musisz wywołać nową funkcję, aby wyrwać się z interfejsu użytkownika.
Być może masz szybką wartość, taką jak:
Ustaw go jako wartość elementu. (skupiamy się na „”).
źródło
To działa dobrze dla mnie.
Po wybraniu wydarzenia użyłem zmiany wydarzenia.
Jestem początkujący!
źródło
źródło
Właśnie go rozwiązałem, zmuszając do utraty koncentracji:
źródło