2015-03-31 23 views
7

Düzenleme: Bootstrap typeahead ile Twitter Bootstrap TagsInput kullanıyorum working JSFiddleHeyecan Bootstrap 3 typeahead/Tagsinput tamamlanması iki kez

eklendi. Kaynağım bir json dosyasıdır, ancak bu alakasız ve statik bir kaynakla kontrol ettim. typeahead ve tagsinput çalışıyoruz

enter image description here

ben girmek sekme veya bir etikete tıklayarak bastığınızda, ancak, yinelenen tam oluşturur. Ben enter tuşuna basın veya typeahead tamamlamak zaman

enter image description here

Extre 'varsayılan' olur o. Eğer yazım kafasını virgülle ayırarak veya pencereden uzaklaşarak koparırsam, bu gerçekleşmez. İşte

girdidir:

<input id="itemCategory" type="text" autocomplete="off" class="tagsInput form-control" name="itemCategory"> 

Ve burada betik: bu benim şans ile tekrarlanabilir olmayacaktır sakat bir şey olduğuna eminim

<script>       
     $('.tagsInput').tagsinput({ 
      confirmKeys: [13, 44], 
      maxTags: 1, 
      typeahead: {     
      source: function(query) { 
       return $.get('listcategories.php'); 
      } 
      } 
     }); 
    </script> 

, bu yüzden' Birinin, böyle bir şeyin gerçekleşmesini sağlayacağını bildikleri bazı kurumsal bilgilere sahip olacağını umuyoruz.

Ek metin, dev içindeki bir görüntü. araçlar: enter image description here

Herhangi bir öneri veya öneriniz için gerçekten minnettarım. Teşekkür ederim.

KODU @Girish için

Teşekkür ÇALIŞMA şunlar neyi "sabit" Bu konu oldu. Bu noktada jQuery veya Typeahead'in daha yeni bir sürümünde bir yerde tanıtılan bir hata olduğuna inanıyorum. Bu kod, ekstra unsuru el ile kaldırır, ancak umarım bir şey, ilk etapta yerleştirilmesini önlemek için ekstra bir kod ortaya çıkarır. Şimdilik benim için çalışıyor.

 $('.tagsInput').tagsinput({ 
      confirmKeys: [13, 44], 
      maxTags: 1, 
      typeahead: {     
      source: function(query) { 
       return $.get('tags.php'); 
      } 
      } 
     }); 
     $('.tagsInput').on('itemAdded', function(event) { 
      setTimeout(function(){ 
       $(">input[type=text]",".bootstrap-tagsinput").val(""); 
      }, 1); 
     }); 
+1

sizin jsfiddle sorunumu gösteren değil demek oluyor çalışmıyor By – Dhiraj

+0

@DhirajBodicherla çalışmıyor veya sorunumu görünüyor? – dcclassics

+1

http://www.kobrien.me/ adresindeki dosyalar 'net :: ERR_INSECURE_RESPONSE' hatasıyla karşı karşıyadır ve kemanın içine yüklenmemelidir. Bazı cdn yerine – Dhiraj

cevap

5

Ben bu hatayı, işlevi içinde hiçbir şey özel kod bakıyor emin değilim, ama giriş alanına tekrarlanır etiketi seçilen, ancak input alandan seçilen değerini kaldırmak için alternatif bir çözüm, itemAdded olay kullanabilirsiniz , örnek kodun aşağıya bakın.

$('input').tagsinput({ 
    typeahead: { 
    source: ['Amsterdam', 'Washington', 'Sydney', 'Beijing', 'Cairo'] 
    }, 
    freeInput: true 
}); 
$('input').on('itemAdded', function(event) { 
    setTimeout(function(){ 
     $(">input[type=text]",".bootstrap-tagsinput").val(""); 
    }, 1); 
}); 

Ben de giriş alanı nedeniyle de <selector> gelen giriş elemanı seçmek için gecikme gerekecektir dinamik nesil girişi alanına, etiket giriş alanını hedef olamazdı bu yüzden this veya event her etiket bölümünü oluşturuyor fark etmiş

DEMO

GÜNCELLEME: $.get() işlevieklemek gerekir böylece, xhr nesne değil sunucu yanıtını dönmek olduğunu AJAX yanıtı almak içinyöntemi, örnek koduna bakınız.

$('.tagsInput').tagsinput({ 
     confirmKeys: [13, 44], 
     maxTags: 1, 
     typeahead: {     
      source: function(query) { 
      return $.get('listcategories.php').done(function(data){ 
       /*if you have add `content-type: application/json` in 
       server response then no need to parse JSON otherwise, 
       you will need to parse response into JSON.*/ 
       return $.parseJSON(data); 
      }) 
      } 
     } 
}); 
+0

Maalesef, JSON’tan çektiğim kendi veri kümemde bu işlevi göremiyorum. – dcclassics

+0

bkz. Güncellenmiş kod – Girish

+1

Bunu doğru cevap olarak işaretledim, lütfumun süresi dolduğundan ve puanları hak ettiğinizi düşünüyorum, ancak sorunun çözülmediğini düşünüyorum ve bir hata olabilir. Yardımlarınız için teşekkürler, @Girish. – dcclassics