web-dev-qa-db-ja.com

jQuery:input.val()内の単語間の$ .trim()スペース

私はここで私に似た質問をいくつか見ましたが、彼らは本当に私に答えません...

だから私はこれをやっています:(ドキュメント準備機能内)

_$("#dest").focusin(function() {
    $("#dest").val($.trim($("#dest").val()));
});
_

イデアは、ユーザーが_#dest_と呼ばれるinputに焦点を合わせ、その上のすべてのスペース文字をトリムするときです(視覚的な快適さのためにfocusoutを使用して以前に追加されました)。

現在、何も起きていません。 :(

誰かがここで少し助けてくれることを願っています。

ありがとう!


これはコンピューター関連の問題ですか?コメンターが提供するすべてのコードをテストしましたが、動作しません。 FirefoxとSafariをOSX(Snow Leopard)10.6.8で、またSafariを10.8.2(Lion)で使用していますが、同じ結果になりました... OSXの問題ですか? -大丈夫、最後の編集を確認してください!


Phil Kleinによる最終的な編集と解決策

私の問題は、jQueryのtrim()関数を誤って使用していたことです... trim()documentation によると、次のようになります。

$ .trim()関数は、指定された文字列の先頭と末尾からすべての改行、スペース(改行なしスペースを含む)、およびタブを削除します。これらの空白文字が文字列の途中にある場合、それらは保持されます。

昨日、_from the beginning and end of the supplied string_と書かれている最後の部分を読みませんでした-皆さんごめんなさい。 :(

幸運なことに、上記の絵を描いた後、@ Phil Kleinは私の間違いを理解し、解決に役立てました。

_$(function() {
    $("#dest").on("focus", function() {
        var dest = $(this);
        dest.val(dest.val().split(" ").join("")); 
    });
});
_

ソリューションの詳細と例を参照してください

@Phil Kleinと、これを手伝ってくれたみんなに感謝します;)

12
TCB13

以下の例は、フォーカスがあるテキストボックスのコンテンツからすべてのスペースを削除します。この特定の例では、新しい.on() AP​​Iを使用するため、jQuery 1.7以降が必要です。

$(function() {
    $("#dest").on("focus", function() {
        var dest = $(this);
        dest.val(dest.val().split(" ").join("")); 
    });
});

この例を参照してください: http://jsfiddle.net/RnZ5Y/5/

18
Phil Klein

これらを試してください:$.trim($("#dest").val());
間違っている場合は修正してください!!

4
Jigar Tank

$("#dest").val().trim();を試してください、それは私のために働いた。

1
Jack Sun

上記のコードがページの準備が完全に整っていない前に実行されている場合、#destはjqueryによって検出されず、イベントをリッスンするためのコードは実行されません。

0
Roman

この関数は、シナリオに適しています。文字間にスペースを1つだけ使用し、2つ以上のスペースを許可しないため

$(function() {
 $("#dest").on("focusout", function() {
    var dest = $(this);
    dest.val(jQuery.trim(dest.val()));        
    dest.val(dest.val().replace(/[ ]{2,}/, ' ')); 
 });
});
0
Innovator One

私は自分の関数を作成しました:)

こちらをご覧ください:)

function KillSpaces(phrase) {

            var totalPhrase = "";
            for (i = 0; i < phrase.length; i++)
            {
                if (phrase[i] != " ")
                {
                    totalPhrase += phrase[i];
                }
            }
            return totalPhrase;
        }

いつでも簡単に使用できます!

$(document).ready(function(){
var test="for testing purposes only";
alert(killSpaces(test));
});
0
Shiva Brahma