作者shiengchyi (上班族之朝九晚六?!)
看板Ajax
標題[問題] 用JS or jQury偵測text的自動完成
時間Tue Jan 31 21:37:12 2012
小弟想問一下版上的大大,
有沒有辦法用JS 或者 JQury去偵測瀏覽器的自動完成,
就是當只使用滑鼠執行瀏覽器自動完成的時候,要怎麼根據Text的值改變,
去觸發Event。
流程:
1.將滑鼠移到Text上
2.滑鼠左鍵兩下,觸發瀏覽器內建的自動完成。
[畫面:Text的下方會出現一個選單,紀錄之前輸入過的值]
3.用滑鼠點選自動完成選單當中的某一個數值,該數值會自動顯示在Text當中。
小弟我試過onChange、onBeforePaste、onBlur都沒辦法觸發。
最後發狠,在body寫了一個
onload="javascript:timeDetect('目標TextID', '隱藏TextID', '隱藏Link ButtonID')"
function timeDetect(txtVal, txtPreVal, hidBtn) {
var txt = document.getElementById(txtVal); //取得目前欄位中的文字內容
var txtBefore = document.getElementById(txtPreVal);
//隱藏欄位,用來暫存前一個文字內容
var btn = document.getElementById(hidBtn);
//判定是否回傳條件==>前後內容不同,目前內容已符合輸入長度
if (txt != null && txtBefore != null && btn != null) {
if (((txt.value != txtBefore.value) && (txt.value.length == 5))) {
txtBefore.value = txt.value;
btn.click(); //執行PostBack動作,點擊隱藏按鈕以觸發回傳動作
} else {
var t = setTimeout("timeDetect('" + txtVal + "', '" +
txtPreVal + "', '" + hidBtn + "')", 10);
}
}
}
用這樣的方式,來處理自動完成。
想請問版上的大大,有沒有其他的辦法,來達成目的,
感覺用onload很無奈,因為它是一直針對Text偵測,
如果同一個畫面裡面有多個Text要這樣玩,就難笑了。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 60.251.71.22
※ shiengchyi:轉錄至看板 Web_Design 01/31 21:45
1F:推 vanic20:ondblclick()? double click的觸發 02/06 00:42