[英]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.