2013-08-13 3 views
2

на странице загрузки У меня есть маркер ввода т.е.предварительного заполнения JQuery маркер ввода текстового поля

$('.txtWard').tokenInput(ward, { 
             theme: 'facebook', 
             allowCustomEntry: true, 
             preventDuplicates: true, 
             tokenDelimiter: '*', 
             searchingText: 'Searching...' 
            }); 

, но проблема в том, когда я нажимаю на другую кнопку, я хочу, чтобы предварительно заполнить элементы в этом лексем входного textbox.when я использую ниже код текстовое поле, дублирующее как другое текстовое поле.

$(document).ready(function() { 
      $('.txtWard').tokenInput(ward, { 
       theme: 'facebook', 
       allowCustomEntry: true, 
       preventDuplicates: true, 
       tokenDelimiter: '*', 
       searchingText: 'Searching...' 
      }); 
      $('#btnGet').click(function() { 
       var prepopulateWards = new Array(); 
       $.ajax({ 
        type: "POST", 
        url: "FetchWard", 
        data: JSON.stringify({ patientNo: $('#txtPatientNo').val(), locale: 'en-US' }), 
        contentType: "application/json; charset=utf-8", 
        dataType: "json", 
        success: function (result) { 
         for (var j = 0; j < result.wards.length; j++) { 
          prepopulateWards.push({ id: result.wards[j].Code, name: result.wards[j].ward }); 
         } 
        } 
       }); 
       $('.txtWard').tokenInput(ward, { 
        theme: 'facebook', 
        allowCustomEntry: true, 
        preventDuplicates: true, 
        tokenDelimiter: '*', 
        searchingText: 'Searching...', 
        prePopulateFromValue: true, 
        prePopulate: prepopulateWards 
       }); 
      }); 

     }); 
+0

Вы после того, что вы сохранили в 'переменной prepopulateWards', поэтому мы можем предложить что-то? Но да, я не думаю, что вы хотите дважды создать токен. – Chris

+0

@ Chris, пожалуйста, проверьте отредактированный вопрос – user2119324

+0

Если нижеприведенное решение Ли неверно, тогда я думаю, что вы не понимаете, как предполагается использовать prePopulate. Какую деятельность вы ищете, когда добавляете подопечные? Вы хотите, чтобы они отображались в виде токенов в текстовом поле, или просто хотите, чтобы они были добавлены в список элементов, доступных для поиска? PrePopulate предназначен для токенов, которые вы хотите использовать, когда TokenInput загружается первым, иначе «добавьте», как сказал Ли, похоже на решение, которое вам нужно. – Chris

ответ

2

Вы действительно должны прочитать документацию. Я никогда не видел этот плагин раньше, но сумел выяснить, как добавить токены на вход в течение нескольких секунд.

Вместо того, чтобы пытаться создать экземпляр плагина дважды в том же текстовом поле, используйте метод, предоставляемый для добавления токена в поле ввода.

http://loopj.com/jquery-tokeninput/

Methods 

selector.tokenInput("add", {id: x, name: y}); 
Add a new token to the tokeninput with id x and name y. 

Так нажмите обработчик вашей кнопки (или представить, если его форма кнопку отправки), должно быть что-то вроде:

$('.txtWard').tokenInput('add',ward); 

Предполагая, что подопечный является объект в формат, и я, конечно, делаю предположения о том, что делает ваш код. Но это примерно то, что вам нужно сделать.

+0

спасибо за ваш ответ, но я не хочу «добавлять» элементы к вводу токенов, но мне нужно предварительно заполнить ('prePopulate: prepopulateWards') уже существующие элементы в текстовом поле ввода токена на другом событии – user2119324

+2

Так что удалите первый 'tokenInput' инициализатор и инициализировать tokenInput, когда вы нажимаете кнопку? – Lee

0
If we are getting data from db with comma separated then 
var prepopulateWards = new Array(); 

    var mail = response.d.Data.split(','); 
    $(mail).each(function (index, item) { 
     prepopulateWards.push({ name: item }); 
    }); 



$('#txt_Recipients').tokenInput(
    { 
    //theme: "facebook", 
    preventDuplicates: true, 
    prePopulateFromValue: true, 
    prePopulate: prepopulateWards 
      }); 


});