簡體   English   中英

Bootstrap 標簽輸入和 Bootstrap 選擇

[英]Bootstrap tags input & Bootstrap select

在我的腳本中,我想確保網站在加載標簽后更改下拉菜單中的值。 但是,行不通的是,站點只對頁面最后一個下拉菜單進行操作。

使用的庫:

這是我的 jquery 代碼:

 $('[name^=tagsquiz]').on('itemAddedOnInit', function(event) { tags = $(this).val(); idtags = $(this).prop('id').substr(13); $.ajax({ type: 'POST', url: 'tags/select', data: { 'tags': tags }, success: function(array) { var html = ''; var count = 1; $('#noqid_' + idtags).empty(); $.each(JSON.parse(array), function(i, ob) { $.each(ob, function(ind, obj) { html += '<option value="' + count + '">' + (count++) + '</option>'; }); }); $('#noqid_' + idtags).html(html); $('#noqid_' + idtags).selectpicker('refresh'); } }); });
 <div class="row"> <div class="col-md-4"> <div class="form-group label-floating"> <label class="control-label">Tags</label> <input class="tagsinput" data-color="rose" data-role="tagsinput" id="tagsfilterid_1" name="tagsquiz[]" type="text" value="test"> </div> </div> <div class="col-md-4"> <div class="form-group label-floating"> <label class="control-label">Select</label> <select class="selectpicker" data-none-selected-text="NO RESULT" data-size="7" data-style="select-with-transition" id="noqid_1" name="noq[]"> </select> </div> </div> </div> <div class="row"> <div class="col-md-4"> <div class="form-group label-floating"> <label class="control-label">Tags</label> <input class="tagsinput" data-color="rose" data-role="tagsinput" id="tagsfilterid_add" name="tagsquiz[]" type="text" value="second test, wow"> </div> </div> <div class="col-md-4"> <div class="form-group label-floating"> <label class="control-label">Select</label> <select class="selectpicker" data-none-selected-text="NO RESULT" data-size="7" data-style="select-with-transition" id="noqid_add" name="noq[]"> </select> </div> </div> </div>

ajax 后接收示例數組:

{"questions":{"0":{"qid":"48"},"2":{"qid":"50"}}}

最好的祝福

我不熟悉這個小部件,但我懷疑你的問題在這里:

idtags = $(this).prop('id').substr(13);

$(this)返回的 jQuery 集合中有多少元素? 您的itemAddedOnInit函數執行了多少次? 如果idtags ,是不是每次idtags的值idtags一樣?

jQuery prop()方法返回“匹配元素集中第一個元素的屬性值”。 無論如何,我懷疑idtags只有一個值,而這一行...

$('#noqid_' + idtags)

只匹配一個元素。

更新

看來問題源於未在以下幾行中使用var關鍵字...

tags = $(this).val();
idtags = $(this).prop('id').substr(13);

省略var使它們成為全局變量,因此itemAddedOnInit兩個執行共享它們。

這是因為您所有的標簽都具有相同的屬性。 你必須使用 JQuery 作為每個函數, $('.control-label').each(function(){ // Your code here });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM