2011-12-20 179 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();,它为我工作。

相关问题