Виджет автозаполнения (jQuery UI) - почему разрыв строки? - PullRequest
3 голосов
/ 28 апреля 2011

У меня проблемы с виджетом автозаполнения.Когда вы выбираете опцию, значению элемента предшествует разрыв строки и пробел.Вот как выглядит результат:

Object { label="\n                     bedroom", value="\n                    bedroom"}

Я не знаю, почему это происходит, может, именно так я настраиваю массив для получения значений?Вот мой код:

$("#step2").show(0, function() {
                /*tags auto-complete*/        
                var tags = $('span', $('#liTags')).text();
                var availableTags = tags.split(' ;');
                $(".liTagInput").autocomplete({ 
                    minLength: 2,
                    source: availableTags,
                    select: function(event, ui) {
                        var value = ui.item;
                        console.log(value);
                        console.log(jQuery.inArray(value, availableTags));
                        if(jQuery.inArray(value, availableTags) >= 0) 
                            $(this).val('');
                    } 
                });

            });

Если вам интересно, что я пытаюсь сделать здесь (что я еще не проверял из-за разрывов строк), я получаю теги из диапазонаэлемент на стороне HTML, затем разделить их на массив (availableTags).

Тогда я хочу, чтобы, когда пользователь вводит что-то в текстовое поле, если это не то, что он выбрал в меню автозаполнения, значение текстового поля должно быть очищено.out (я мог бы также показать им предупреждение, предлагающее им выбрать из меню, но давайте пока оставим это).

Есть мысли?

Ответы [ 2 ]

1 голос
/ 28 апреля 2011

Почему бы не использовать

string.replace(/\s/g, "");

для удаления пробелов с помощью replace () .

И для удаления всех разрывов строкиспользуйте

string.replace(/(\r\n|\n|\r)/gm,"");

А вот и вы: http://jsfiddle.net/tjfmp/

0 голосов
/ 23 декабря 2015

string.trim() сделано именно для этой цели.

...