2010-11-12 118 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的警告,您所做的事確實干擾了用戶對單擊輸入文本元素時的行爲方式的期望,並且您應仔細考慮您的需求是否真的表明這是要走的路。