[英]jQuery, bootstrap: input.val() is undefined, even though jsfiddle works fine
[英]jQuery: $.trim() spaces between words in input.val()
我在這里看到了一些類似的問題,但他們並沒有真正回答我......
所以我這樣做:(在文檔就緒函數內)
$("#dest").focusin(function() {
$("#dest").val($.trim($("#dest").val()));
});
意思是當用戶專注於一個名為#dest
的input
修剪它上面的所有空格字符(之前使用焦點輸出來增加視覺舒適度)。
現在,什么也沒發生。 :(
希望有人能在這里幫助我一點。
謝謝!
這是計算機相關的問題嗎? 我已經測試了評論者提供的所有代碼,但都沒有。 我在OSX(Snow Leopard)10.6.8下使用Firefox和Safari,在10.8.2(Lion)下使用Safari,我得到了相同的結果...... OSX問題? - 一切都好,查看我的上次編輯!
最終編輯和解決方案歸功於Phil Klein
我的問題是使用錯誤的jQuery的trim()
函數...根據trim()
文檔,它執行以下操作:
$ .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和所有幫助過我的人;)
下面的示例從焦點上的文本框內容中刪除所有空格。 這個特殊的例子需要jQuery 1.7+,因為它使用了新的.on()
API:
$(function() {
$("#dest").on("focus", function() {
var dest = $(this);
dest.val(dest.val().split(" ").join(""));
});
});
看這個例子: http : //jsfiddle.net/RnZ5Y/5/
試試這些: $.trim($("#dest").val());
如果我錯了,請糾正我!
嘗試$("#dest").val().trim();
,它對我有用。
此功能適用於您的方案。 因為它在字符之間只占用一個空格而不允許超過2個空格
$(function() {
$("#dest").on("focusout", function() {
var dest = $(this);
dest.val(jQuery.trim(dest.val()));
dest.val(dest.val().replace(/[ ]{2,}/, ' '));
});
});
我做了我自己的功能:)
請看這里:)
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));
});
如果您的代碼在頁面未完全就緒之前正在執行,則很可能jquery找不到#dest
,並且不會執行用於偵聽事件的代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.