2011-04-28 70 views
3

我在使用自动填充小部件时遇到了一些问题。当您选择一个选项时,该项目的值将以换行符和一些空格为前缀。结果如何显示:自动填充小部件(jQuery UI) - 为什么换行?

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(''); 
        } 
       }); 

      }); 

如果你想知道什么我想在这里做(我还没有测试,因为换行符的),我碰到一个span元素的标签上HTML端,然后将它们分成一个数组(availableTags)。

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

有什么想法?

回答

1

为什么不使用

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

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

,并删除所有换行符使用

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

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

+0

@ArtWorkAD:我正在考虑做类似的事情,但我仍然想知道换行符是从哪里来的。此外,我如何截取所选择的自动完成菜单选项的值来删除空格? – Kassem 2011-04-28 09:46:42

+0

看起来你的“可用标签”有这些换行符。尝试做可用的日志标记以确定换行的原因。为什么在split(“;”)上有空格? – 2011-04-28 09:53:31

+0

@ArtWorkAD:这是因为span元素中的标签由空格和半列分隔。我将删除该空间并对其进行测试。 – Kassem 2011-04-28 09:58:03

0

string.trim()是为这个目的做。

+0

虽然这个链接可能回答这个问题,但最好在这里包含答案的基本部分,并提供参考链接。如果链接页面更改,则仅链接答案可能会失效。 - [来自评论](/评论/低质量帖/ 10668604) – 2015-12-23 21:51:38

+0

@SergeyDenisov - 但它不只是一个链接。 – ZygD 2015-12-23 23:13:52

相关问题