8

मैं टाइपहेड/ब्लडहाउंड के साथ बूटस्ट्रैप-टोकनफील्ड का उपयोग कर रहा हूं।टाइपहेड/ब्लडहाउंड के साथ बूटस्ट्रैप टोकनफील्ड टोकन को छोड़कर

मैं टोकनफील्ड में दो बार इस्तेमाल होने से उसी टोकन को रोक सकता हूं, लेकिन उसी टोकन अभी भी टाइपहेड प्रतिक्रिया में दिखाई देता है। मैं टोकनफील्ड में पहले से मौजूद टोकन को कैसे बाहर निकाल सकता हूं?

var engine = new Bloodhound({ 
    remote: { 
    url: API_URL + '?action=message_friends&q=%QUERY', 
    filter: function (response) { 
     return $.map(response.users, function (user) { 
     return { 
      value: user.user_id, 
      label: user.name 
     }; 
     }); 
    } 
    }, 
    datumTokenizer: function(d) { 
    return Bloodhound.tokenizers.whitespace(d.value); 
    }, 
    queryTokenizer: Bloodhound.tokenizers.whitespace  
); 

engine.initialize(); 

$('#to-tags').tokenfield({ 
    typeahead: [ 
    { 
     hint: false 
    }, 
    { 
     name: 'users', 
     displayKey: 'label', 
     source: engine.ttAdapter() 
    } 
    ] 
}).on('tokenfield:createtoken', function (event) { 
    var existingTokens = $(this).tokenfield('getTokens'); 
    $.each(existingTokens, function(index, token) { 
    if (token.value === event.attrs.value) { 
     event.preventDefault(); 
    } 
    }); 
}); 

उत्तर

7

टोकन क्षेत्र में पहले से ही उपयोगकर्ताओं को दूर करने के फिल्टर समारोह अपडेट किया गया:

var engine = new Bloodhound({ 
     remote: { 
      url: API_URL + '?action=message_friends&q=%QUERY', 
      filter: function (response) { 
       var tagged_user = $('#to-tags').tokenfield('getTokens'); 
       return $.map(response.users, function (user) { 
        var exists = false; 
        for (i=0; i < tagged_user.length; i++) { 
         if (user.user_id == tagged_user[i].value) { 
          var exists = true; 
         } 
        } 
        if (!exists) { 
         return { 
          value: user.user_id, 
          label: user.name 
         }; 
        } 
       }); 
      } 
     }, 
     datumTokenizer: function (d) { 
      return Bloodhound.tokenizers.whitespace(d.value); 
     }, 
     queryTokenizer: Bloodhound.tokenizers.whitespace 
    }); 

    engine.initialize(); 

    $('#to-tags').tokenfield({ 
     delimiter: false, 
     typeahead: [ 
      { 
       hint: false 
      }, 
      { 
       name: 'users', 
       displayKey: 'label', 
       source: engine.ttAdapter() 
      } 
     ] 
    }) 
    .on('tokenfield:createtoken', function (e) { 
     var existingTokens = $(this).tokenfield('getTokens'); 
     if (existingTokens.length) { 
      $.each(existingTokens, function(index, token) { 
       if (token.value === e.attrs.value) { 
        e.preventDefault(); 
       } 
      }); 
     } 
    }); 
+0

जब मैं इस कोड को यूआरएल का उपयोग करें: '? कार्रवाई = message_friends & q =% QUERY' के API_URL +, और भाग के रूप में निरीक्षण किया पोस्ट हेडर के, पोस्ट वैरिएबल मान% क्वेरी है और वास्तविक मान नहीं है। क्या गलत हो सकता है? –

संबंधित मुद्दे