2010-08-03 2 views
7

Срабатывает, когда элемент выбран из меню; ui.item относится к выбранному элементу. По умолчанию действие select заключается в замене значения текстового поля на значение выбранного элемента. Отмена этого события предотвращает обновление значения, но не препятствует закрытию меню.как предотвратить событие выбора по умолчанию в автозаполнении jQuery

$("#txt1").autocomplete({ 
    minLength: 1, 
    source: "abc.php", 
    select: function(event, ui) 
    { 
     event.preventDefault(); 
     //alert("Select"); 
     var label= ui.item.label; 
     var value= ui.item.value; 
     $('#txt1').val(ui.item.label); 
    } 
}); 
+0

вы когда-нибудь понять это? –

ответ

-1

с помощью этого параметра selectFirst: ложные

+0

не работает. извините – Trip

6

Я знаю, что это очень старый вопрос, но я просто наткнулся на проблему сам. Ответ для меня поставить event.preventDefault(); в конце выбора метода, как это:

$("#txt1").autocomplete({ 
    minLength: 1, 
    source: "abc.php", 
    select: function(event, ui) 
    { 
     //alert("Select"); 
     var label= ui.item.label; 
     var value= ui.item.value; 
     $('#txt1').val(ui.item.label); 
     event.preventDefault(); // <---- I moved! 
    } 
}); 

Для меня, если event.preventDefault(); ставится в начале функции, то событие по умолчанию не срабатывает, а остальное функции не выполняется. Если он перемещен до конца, то он работает так, как ожидалось. Надеюсь, это помогает кому-то другому.

+0

Не работает для меня с последним автозаполнением. :( – user706420

0

Так что это небольшой взлом, который работал на меня: в моем случае, выбрав запись в раскрывающемся списке (щелчком мыши или с помощью клавиш со стрелками для выделения и нажатия ENTER), я использовал value для создания URL, а затем отправил браузер, но он все еще скопирован в поле поиска. Ни один из ответов, которые я пробовал, не мешал этому. Таким образом, чтобы остановить value отображается в окне поиска, я сделал value так же, как label в моей JSON и добавили дополнительное поле code, который использует мой select обработчик событий для построения URL мне нужно:

$("#autocomplete").autocomplete({ 
    source: "http://www.example.com/search", 
    minlength: 2, 
    select: function(event, ui) { 
    // go to page on ENTER 
    window.location.href = "/page/" + ui.item.code; 
    } 
}); 
Смежные вопросы