2011-04-28 59 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

相關問題