2016-12-11 165 views
0

我有一個標籤輸入字段,我必須進行一些更改。 例如,我有這個領域以前 - > Initial StateBootstrap標籤輸入 - 在標籤之間添加

我移動光標回到我的方向鍵和刪除「測試」標籤 - 在再次> Deleted Tag

我再重新輸入相同的位置 - > Entered Again

我按下右箭頭鍵並將光標放回到它的位置。我按照前面的圖片所示的格式提交了「測試,短語」的順序。但結果是「短語,測試」。我想保留我編輯它的順序。任何想法這裏有什麼問題?

enter image description here

的HTML代碼 - >

<div class="col-md-8 col-xs-12"> 
    <input type="text" data-role="tagsinput" class="form-control" name="phrases" placeholder="Enter Phrases In Order" value="<?php echo $phrases;?>" required> 
</div> 

PHP的變量$短語被從MySQL以逗號分隔格式retreived。

$phrases="test,phrase"; 

真的沒有太多的代碼。我只是想在編輯它之後保留這個命令。

+0

我不知道。沒有代碼。請提供代碼。 – Ionut

+0

@Ionut - 更新了描述 – RwitamB

回答

2

我已經做了一些關於這方面的研究,並且在文檔中找不到任何自定義選項來解決此問題。我想出了一個簡單的修復方法,您可以稍微修改bootstrap-tagsinput.js代碼。我希望這能幫到您。

找到這行代碼:

self.itemsArray.push(item);

,並用這個代替它:

self.itemsArray.splice(self.findInputWrapper().index(), 0, item); 

你可以做一個console.log($("input").tagsinput('items'));看到返回的array更改標籤後。

.push()將值增加到array的末尾,但是當您使用.splice()時,您可以指定添加它的位置。

這應該解決您的問題。

+0

哇,完美的作品,但我似乎無法理解findInputWrapper()方法在做什麼 - @Ionut – RwitamB

+0

我很高興它的工作@RwitamB。關於'findInputWrapper()',我認爲我可以說比它上面的註釋更好,我引用:'返回包裹在內部輸入中的元素。這通常是$容器,但typeahead.js移動$ input元素 – Ionut