2011-12-20 176 views
13

我見過雷這裏一些類似的問題,但他們並沒有真正回答我...

所以我做此:(裏面的文件準備功能)

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

的IDEIA是當用戶集中在一個input稱爲#dest修剪在其上的所有空格字符(使用預先爲事件的內容的視覺舒適度加)。

現在,什麼都沒有發生。 :(

希望有人能幫助我有點這裏。

謝謝!


這是一個與電腦有關的問題? 我測試過的評論者和沒有提供的所有代碼我在OSX(Snow Leopard)10.6.8下使用Firefox和Safari並且在10.8.2下使用Safari(Lion),並且我得到了相同的結果... OSX問題? - 一切正常,檢查我的最後編輯!


最後的編輯和解決方案感謝菲爾·克萊

我的問題是不正確地使用jQuery的trim()功能......按照trim()documentation它具有下列功能:

的$。 trim()函數刪除所提供字符串的所有換行符,空格(包括 非空格)以及從 開始和結尾的選項卡。如果這些空白字符出現在 中間的字符串中,它們將被保留。

昨天我沒有看到它說的最後一部分from the beginning and end of the supplied string - 對不起大家。 :(

幸運,上圖中後,@Phil克萊恩瞭解我的錯誤,並用一個解決方案在幫助我。

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

您可以read more about the solution and see an example here

感謝@Phil克萊恩也大家誰幫助我在這一個;)

+1

也許視覺舒適度可以通過其他方式實現(CSS填充?) – Thilo 2011-12-20 04:06:25

+0

你的功能是完全正確的,你只需要用$(function(){... code ...}來包裝它 – 2011-12-20 04:09:36

+0

@Thilo - CSS填充每3個數字? – TCB13 2011-12-20 15:35:18

回答

15

下面的示例從焦點文本框的內容中刪除所有空格。這個特殊的例子需要jQuery 1。7+因爲它使用新的API .on()

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

見這個例子:http://jsfiddle.net/RnZ5Y/5/

+1

您可能希望將代碼包含在您的答案中,jsfiddle並非總是可訪問。 – 2011-12-20 04:09:59

+0

你的例子不工作,在Firefox和Safari下測試。不管怎麼說,還是要謝謝你。 – TCB13 2011-12-20 15:34:31

+0

什麼不起作用?我用相同的瀏覽器進行了測試。 – 2011-12-20 15:40:17

4

試試這些:$.trim($("#dest").val());
糾正我,如果我錯了!

+0

.val()應罰款一個文本字段 – Thilo 2011-12-20 04:07:08

+0

你最後還需要一個')',但是'$ .trim($(「#d est「)。val());'仍然沒有工作......謝謝 – TCB13 2011-12-20 15:31:34

+0

@ TCB13最後的支架用於$ .trim – 2014-07-25 16:49:26

0

如果你上面的代碼執行之前的頁面是沒有完全準備好那麼它很可能是#dest ISN沒有被jQuery發現,用於監聽事件的代碼沒有被執行。

+0

代碼是在「文檔準備好」功能中,很抱歉,一開始就不這麼說。無論如何,我瘋了,試圖把代碼放在這裏:'$(window).bind(「load」,function(){'並且仍然不能工作,謝謝 – TCB13 2011-12-20 15:53:25

0

此功能對您的情況正常工作。因爲它正在字符,而不是之間只有一個空間,允許超過2空間

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

這個案例很久以前就被關閉了。我在錯過閱讀文檔時錯誤地承認了這一點。 – TCB13 2014-04-18 13:16:16

2

嘗試$("#dest").val().trim();,它爲我工作。

相關問題