2013-03-01 28 views
1

我正在使用jQuery 1.7.2哪個事件是瀏覽器表單元素的選擇?

我有一個表單元素,旨在收集電子郵件地址。當瀏覽器看到這樣一個真正常見的名稱時,它會預先填充之前使用過的電子郵件地址。像這樣:

<input type='text' name='Email' id='Email'> 

我把元素放到一個變量中供以後使用。像這樣:

var $Email = $('#Email'); 

當通過鍵入或選擇瀏覽器預填充選項更改此元素時,我想測試電子郵件地址。我目前正在聽這樣的變化和keyup事件:

$Email.change(doSomething); 
$Email.keyup(doSomething); 

這一切都很完美。當用戶點擊表單元素並且瀏覽器刪除已經使用的先前電子郵件地址列表並且用戶選擇這些電子郵件地址之一時,問題就出現了。

更改事件未觸發,因爲電子郵件仍然有焦點。由於用戶未按下按鍵,因此不會觸發按鍵。

當用戶從瀏覽器預填表單中選擇選項時會觸發什麼事件?

+0

嘗試使用'input'事件。 – 2013-03-01 21:40:10

+0

這是我正在嘗試的事件列表:http://api.jquery.com/category/events/ – 2013-03-01 21:54:06

+0

沒錯,但正如你發現的那樣,這些工作都沒有。嘗試'.on('input',function(){...' – 2013-03-01 21:55:04

回答

1

另一種方法是通過將autofill='off'添加到輸入元素來禁用使用瀏覽器自動填充的功能。

你也可以有當字段失去焦點就更新:$Email.blur(doSomething);

+0

克里斯,我不應該使用修剪功能,我編輯了它,不,我希望人們能夠選擇自動填充的選擇當他們選擇它時會發生什麼事件?當他們離開(模糊)時,我已經工作得很好 – 2013-03-01 21:47:53

+0

好的,只要確認。我從我的答案中刪除了它,因爲它不相關。嗯,如果'.blur()'不起作用,我不確定在這種情況下會發生什麼。 – 2013-03-01 21:56:49

+0

Blur DOES工作,但是當用戶失去焦點時,不會發生這種情況這裏,當你選擇自動填充選項時,你不會模糊。元素STILL有焦點。所以,模糊不適合我。 – 2013-03-01 21:58:16

相關問題