2010-11-12 121 views
1

我想要的功能就像在文本框的焦点事件我想选择文本框的文本和单击文本框我想检查文本框中的文本是否被选中,然后取消选择其他明智选择。jQuery选择和取消选择文本框文本

为了这个,我已经添加如下代码:

$('input').focus(function(){ 
    $(this).select(); 
}); 

什么码我要补充上点击事件,以便它能够满足需求量的

感谢&问候

Munish

+1

你确定你想要?这意味着,无论何时用户单击以将光标设置在某个位置,整个文本被选中或取消选择,因此用户不能使用鼠标点击来定位光标。与“普通”文本框相比,这是意想不到的行为,请考虑两次! – 2010-11-12 12:20:18

+0

不明白你为什么想要这样做?当用户再次在文本框中单击时,他/她已获得焦点,所以.select()不会再次运行,然后文本被取消选中。如果用户在页面上的其他地方点击了文字,则无论如何都会取消选择该文本,因此如果他们再次单击该文本框,它将选择所有文本... – Brady 2010-11-12 12:43:33

+0

您可以使用focus out属性来设置[focus out](http:/ /api.jquery.com/focusout/) – 2010-11-12 12:46:47

回答

0

如果您想让用户能够覆盖已经存在的内容,则可以将其设置为空:

$('input').focus(function(){ 
    $(this).val('').removeClass('default-value'); 
}); 

$('input').blur(function(){ 
    if ($(this).val()=='') 
    $(this).val('default value').addClass('default-value'); 
}); 

addClass/removeClass位不需要......他们就在那里,这样就可以使默认值显示为灰色或斜体或东西,如果你的愿望。对我来说,这看起来很专业。

0

jQuery的DOX在这里的.select() method说以下内容:

检索当前选中文本的方法是从一个浏览器的不同而不同。许多jQuery插件提供了跨平台的解决方案。

所以在它的表面上看起来好像你必须沿着插件路线去确定是否在你的输入控件中选择了文本。

我也会回应Felix的警告,您所做的事确实干扰了用户对单击输入文本元素时的行为方式的期望,并且您应仔细考虑您的需求是否真的表明这是要走的路。