自动完成小部件(jQuery UI) - 换行的原因?

时间:2011-04-28 09:40:31

标签: jquery jquery-ui jquery-ui-autocomplete

我在使用自动填充小部件时遇到了一些问题。选择选项时,项目值以换行符和一些空格为前缀。结果如下:

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端的span元素中获取标签,然后将它们分成数组(availableTags)。

然后我想要发生的是,一旦用户在文本框中输入内容,如果它不是他/她从自动完成菜单中选择的内容,那么应该清除文本字段的值(I也可能会向他们显示警告,告诉他们从菜单中选择,但现在让我们离开。)

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

为什么不使用

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

使用replace()方法删除空格。

要删除所有换行符,请使用

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

在这里:http://jsfiddle.net/tjfmp/

答案 1 :(得分:0)

string.trim()就是为了这个目的而制作的。

相关问题