jQuery: $.trim() пробелы между словами в input.val()

Я видел здесь вопросы, похожие на мои, но они не дают мне ответа...

Поэтому я делаю следующее: (Внутри функции готовности документа)

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

Идея в том, чтобы при фокусе пользователя на input под названием #dest обрезать все пробельные символы на нем (ранее добавленные с помощью focusout для визуального удобства).

Сейчас ничего не происходит. :(

Надеюсь, кто-нибудь сможет мне немного помочь.

Спасибо!


Это проблема, связанная с компьютером?. Я проверил все коды, предоставленные комментаторами, и ни один не работает. Я использую Firefox и Safari под OSX (Snow Leopard) 10.6.8, а также Safari под 10.8.2 (Lion), и я получил те же результаты... Проблема с OSX? -- Все в порядке, проверьте мою последнюю правку!


Последняя правка и решение благодаря Филу Кляйну

Моя проблема заключалась в неправильном использовании функции jQuery trim()... Согласно trim() документации она делает следующее:

Функция $.trim() удаляет все новые строки, пробелы (включая не разрывные пробелы), и табуляции из начала и конца предоставленной строки. Если эти пробельные символы встречаются в середине строки, они сохраняются. в середине строки, они сохраняются.

Вчера я не прочитал последнюю часть, где говорится от начала и конца поставляемой строки -- Простите все. :(

К счастью и после рисунка выше, @Phil Klein понял мою ошибку и помог мне с решением:

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

Вы можете прочитать больше о решении и посмотреть пример здесь.

Спасибо @Phil Klein, а также всем, кто помог мне в этом деле;)

12
задан Community 23 May 2017 в 12:10
поделиться