2013-09-26 3 views
0

Я пытаюсь использовать LoopJ (http://loopj.com/jquery-tokeninput/demo.html) автокомпетент для создания функционального окна поиска. Как вы можете увидеть на демонстрационной странице, следующий код работает автозаполнение:Сделать эту функцию jQuery динамической

$(document).ready(function() { 
    $("#demo-input-pre-populated").tokenInput("tvshows.php", { 
     searchDelay: 1000, 
     minChars: 3, 
     tokenLimit: 1,   
     prePopulate: [ 
      {id: 9000, name: "Kriss Akabusi"} 
     ] 
      }); 
    }); 

Предположим, что вы хотите отправить текстовое поле значение как запрос GET к tvshows.php. Так как этот код будет получить только начальное значение текстового поля (предполагающее id=mytextbox), я попытался изменить этот код, чтобы сделать его удовлетворить мои требования при изменении значения текстового поля:

var $elem = $("#demo-input-pre-populated"); 

$("#mytextbox").on('change', function() { 
    var country = $.trim(this.value); 
    $elem.tokenInput("tvshows.php?country=" + country, { 
     searchDelay: 1000, 
     minChars: 3, 
     tokenLimit: 1, 
    }); 
}); 

и он прекрасно работает. Так в чем проблема?

Как вы можете видеть в кодах JavaScript, я удалил prePopulate форму второго кода JS (prePopulate является значением по умолчанию для окна поиска). Поскольку prePopulate не будет установлен до тех пор, пока я не изменю значение текстового поля - набрав что-то в нем (id = mytextbox).

Итак, как я мог обрабатывать все эти вещи вместе? Я попытался по-разному сделать prePopulate, работая перед изменением значения текстового поля. Но я еще не успел.

ответ

0

Вы можете использовать onAdd функцию, чтобы сделать эту функцию

var $elem = $("#demo-input-pre-populated"); 
var arr = [];//Array to hold selected values 
$("#mytextbox").on('change', function() { 
    var country = $.trim(this.value); 
    $elem.tokenInput("tvshows.php?country=" + country, { 
     searchDelay: 1000, 
     minChars: 3, 
     tokenLimit: 1, 
     prePopulate: arr, 
     onAdd:function(item) 
      { 
       arr.push(item); 
      } 
    }); 
}); 
+0

Вы также должны реализовать «OnDelete»;) –

 Смежные вопросы

  • Нет связанных вопросов^_^