2014-12-19 44 views
3

無論如何,我可以檢測到自動填充之前,用戶從下拉菜單中選擇一個選項?在選擇之前檢測瀏覽器自動填充

enter image description here

預計:400010所見。

目前我有:

$('input').on('input paste change keyup', function(event) { 
    if(event.type=='input'){ 
     console.log($(this).val()); 
    } 
}); 

..它的工作原理之後,用戶已經做出選擇,而不是之前在上面的截圖看到。

+0

可能重複? :http://stackoverflow.com/questions/11708092/detecting-browser-autofill – DarkHorse 2014-12-19 06:28:07

+0

@DarkHorse不,試過,這些解決方案都不起作用。 – 3zzy 2014-12-19 06:29:02

+0

爲了澄清,在進行選擇並且該字段仍處於焦點狀態後檢測到更改*,但在用戶將鼠標懸停在選項上時,需要更改文本。 – 3zzy 2014-12-19 06:30:12

回答

6

Read this article,他們深入下去檢測自動填充事件。問題是並非所有的瀏覽器都支持自動填充事件,但是我認爲在用戶做出選擇之前,任何人都不會愚蠢地支持這個功能。想想這個:如果他們在選擇之前支持自動填充事件,那麼竊取人們的密碼,郵編,信用卡等是非常簡單的。因爲你可以發送一個包含這些自動完成信息的AJAX請求無論用戶是否真的選擇了它們。

對不起,如果我沒有更多的幫助。

0

嘗試這樣的:

$(document).ready(
function (event) { 
    $('.ddClass').on('mouseenter', 'option', function(e) { 
    $("#zipcode").val(this.value); 

); 
}); 

//其中.ddClass是類的下拉選項

+0

是不是這樣:'$('input:not([type = password]),textarea,select')。on('hover',function(event){ \t if(event.type == 'hover'){ console.log(「hover:」+ $(this).val()); } });' – 3zzy 2015-01-21 05:47:29

+0

雖然不起作用。請參閱此屏幕錄像:https://www.dropbox.com/s/bgvb0i0x4u8urpi/2015-01-21_1119.swf?dl=0 – 3zzy 2015-01-21 05:51:16

+0

Dropbox在我的結尾處被阻止 – Semicolon 2015-01-21 06:17:29