0

У меня есть поле ввода тега, где я должен внести некоторые изменения. Например, у меня есть это поле ранее -> Initial StateBootstrap Tags Input - Добавить между тегами

переместить курсор назад с моими клавишами со стрелками и удалить «тест» тег -> 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> 

РНР переменная $ фраз в настоящее время MySQL полученное из в формате разделенных запятой.

$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

wow, который отлично работает, но я не могу понять, что делает метод findInputWrapper() - @Ionut – RwitamB

+0

Я рад, что он работал @RwitamB. Что касается 'findInputWrapper()', я не думаю, что могу сказать это лучше, чем комментарий выше этого, и я цитирую: 'Возвращает элемент, который обернут вокруг внутреннего входа. Обычно это контейнер $, но typeahead.js перемещает элемент ввода $. ' – Ionut

 Смежные вопросы

  • Нет связанных вопросов^_^