2011-05-31 100 views
1

我想選擇第一項,但不想用它填充輸入。因此,如果按Enter鍵,則會選擇第一個值,但從不輸入自動填充,直到用戶點擊回車或點擊屏幕上其他位置導致列表關閉。Jquery UI自動完成選擇第一項,但不填充輸入

我看過selectFirst和autoFocus,但它們並不完全是我在找的東西。不知道我所要求的是甚至可能的,但在我看來,它一定是。

任何想法?

回答

2

首先,selectFirstautoFocus不是jQueryUI autocomplete上的選項。它們來自最終被採用到jQueryUI中的插件,因此發現here的文檔已被棄用。

我並不完全清楚你想完成什麼,但是聽起來好像你只是不希望某個項目在下拉菜單中關注它時填充input元素。這的確是可能的:

$("#autocomplete").autocomplete({ 
    source: [...], 
    focus: function() { 
     return false; 
    } 
}); 

focus事件處理程序返回false將防止在菜單關注項目從填充下拉列表。

請注意,單擊頁面上的其他位置將不會填充input元素。這是因爲當您將鼠標移離菜單時,您選擇的項目會失去焦點。這對我來說似乎是自然的行爲,但也可能有一種方法來實現這一點。

這裏有一個工作示例:http://jsfiddle.net/andrewwhitaker/RyTuV/

+0

嗨安德魯, 謝謝你回到我身邊。 當然,我明白他們是插件,而不是AC Ui原始選項集的一部分。儘管我覺得我還沒有讓自己清楚。 當列表打開時,我想選擇第一個選項。我只是不想輸入填充值。因此,如果用戶輸入「soc」,則會列出一些項目,如「足球」,「社會研究」。所以現在在列表打開並且輸入「soc」的情況下,用戶點擊關閉列表或點擊進入關閉列表。這是第一個選項應填充輸入的時間。 – Arnaud 2011-06-01 11:04:33

+0

添加到上面的評論我同意你的陳述,它不是自然的,但它是客戶想要的。所以我必須做到這一點。將不勝感激任何幫助。 – Arnaud 2011-06-01 11:57:03

0

可以使用focus事件處理程序和autoFocus選項一起填充隱藏的輸入。然後,當自動完成菜單關閉時,使用事件處理程序使用隱藏輸入來填充所需的任何字段。

相關問題