Предложить следующее:
$("#TextArea").autocomplete({
source: function(req, resp){
var option = $('#Options option:selected').val().toLowerCase();
$.ajax({
cache: false,
url: "search.php",
data: {
option: option,
term: req.term
},
dataType: "json",
success: function(data){
resp(data);
}
});
},
minLength: 3
});
Я думаю, что одна проблема заключается в том, что если #Options
является элементом <select>
, вам нужно найти выбранный дочерний элемент:
$("#Options option:selected")
Это гарантирует, что у вас есть подходящий объект, и тогда вы можете вызвать .val()
на нем. Если вам нужна дополнительная помощь здесь, пожалуйста, обновите ваш пост с MCVE: https://stackoverflow.com/help/mcve
Это может решить проблему для вас. Если нет, продолжайте.
Во-вторых, чтобы убедиться, что вы не кэшируете, мы можем выполнить более ручную запись исходного кода.
Когда используется строка, плагин автозаполнения ожидает, что эта строка будет указывать на ресурс URL, который будет возвращать данные JSON. Это может быть на том же хосте или на другом (должен поддерживать CORS). Плагин автозаполнения не фильтрует результаты, вместо этого добавляется строка запроса с полем term
, которое серверный сценарий должен использовать для фильтрации результатов.
Итак, мы копируем ту же функциональность с некоторыми добавленными настройками. Таким образом, каждый раз, когда проверяется источник, проверяются параметры и отправляется термин. Мы вернем данные в JSON и отправим в Autocomplete для отображения.
Надеюсь, это поможет.