我在这里看到了一些类似的问题,但他们并没有真正回答我......
所以我这样做:(在文档就绪函数内)
$("#dest").focusin(function() {
$("#dest").val($.trim($("#dest").val()));
});
当用户专注于input
调用#dest
上的所有空格字符时(之前使用焦点添加以提高视觉舒适度),这意味着。
现在,什么也没发生。 :(
希望有人能在这里帮助我。
谢谢!
这是与计算机相关的问题吗? 我已经测试了评论者提供的所有代码,但都没有。我在OSX(Snow Leopard)10.6.8下使用Firefox和Safari,在10.8.2(Lion)下使用Safari,我得到了相同的结果...... 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(""));
});
});
你可以read more about the solution and see an example here。
感谢@Phil Klein和所有帮助过我的人;)
答案 0 :(得分:18)
以下示例从焦点上的文本框内容中删除所有空格。这个特殊的例子需要jQuery 1.7+,因为它使用了新的.on()
API:
$(function() {
$("#dest").on("focus", function() {
var dest = $(this);
dest.val(dest.val().split(" ").join(""));
});
});
请参阅此示例:http://jsfiddle.net/RnZ5Y/5/
答案 1 :(得分:4)
试试这些:$.trim($("#dest").val());
如果我错了,请纠正我!!
答案 2 :(得分:1)
尝试$("#dest").val().trim();
,它对我有用。
答案 3 :(得分:0)
如果上面的代码在页面未完全准备好之前正在执行,则jquery很可能找不到#dest
,并且不会执行用于侦听事件的代码。
答案 4 :(得分:0)
此功能适用于您的方案。因为它在字符之间只占用一个空格而不允许超过2个空格
$(function() {
$("#dest").on("focusout", function() {
var dest = $(this);
dest.val(jQuery.trim(dest.val()));
dest.val(dest.val().replace(/[ ]{2,}/, ' '));
});
});
答案 5 :(得分:0)
我创造了自己的功能:)
请看这里:)
max(d)
您可以随时轻松使用它!
function KillSpaces(phrase) {
var totalPhrase = "";
for (i = 0; i < phrase.length; i++)
{
if (phrase[i] != " ")
{
totalPhrase += phrase[i];
}
}
return totalPhrase;
}