2011-04-28 19 views
3

私はオートコンプリートウィジェットにいくつか問題があります。オプションを選択すると、項目値の前に改行といくつかの空白が付きます。ここでは結果が現れ方法は次のとおりです。オートコンプリートウィジェット(jQuery UI) - 改行はなぜですか?

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

私はdonnoことが起こっている理由は、多分それは私がから値を取得するための配列を設定してい方法ですか?ここに私のコードです:

場合
$("#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

なぜreplace()方法を使用して空白を削除する

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

を使用しないでください。

そして、すべての改行を削除するにはここで

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

を使用し、あなたは行く:http://jsfiddle.net/tjfmp/

+0

@ArtWorkAD:私は同様のことをやろうとしていましたが、改行がどこから来ているかを知りたいと思っていました。さらに、空白を削除するために、選択した自動補完メニューオプションの値を傍受するにはどうすればよいですか? – Kassem

+0

あなたの「avaiableタグ」に改行があるようです。利用可能なタグをログに記録して、改行の理由を判断してください。空白を分割( ";")する理由は何ですか? –

+0

@ArtWorkAD:これは、スパン要素のタグがスペースとセミコラムで区切られているためです。スペースを取り除いてテストします。 – Kassem

0

string.trim()は、まさにこの目的のために作られています。

+0

このリンクは質問に答えるかもしれませんが、答えの本質的な部分をここに含めて参考にしてください。リンクされたページが変更された場合、リンクのみの回答は無効になります。 - [レビューの投稿](レビュー/低品質の投稿/ 10668604) –

+0

@SergeyDenisov - それは単なるリンクではありません。 – ZygD

関連する問題