2016-12-11 120 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