作者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