Hi,
Is it possible to detect if the IE autocomplete function in a current
context such as a textbox is activated (ie. dropdown with previously
entered info is visible)?
Problem:
I use a script as a basis for binding <enter> in textbox to a button,
BUT <enter> in the dropdown autocomplete generated by IE also triggers
this event.
The script is available below (in .NET context but the idea should
shine through).
Best regards
Brian Christensen
// Sets default buttons.
// Originally created by Janus Kamp Hansen - http://www.kamp-hansen.dk
// Extended by Darrell Norton -
http://dotnetjunkies.com/weblog/darrell.norton/
// Available at http://www.gotdotnet.com/Community/W...9-276f0620589d
string theImageScript = @"
<SCRIPT language=""java script"">
<!--
function fnTrapKD(btnID, event){
btn = findObj(btnID);
if (document.all){
if (event.keyCode == 13){
event.returnVal ue=false;
event.cancel = true;
btn.click();
}
}
else if (document.getEl ementById){
if (event.which == 13){
event.returnVal ue=false;
event.cancel = true;
btn.focus();
btn.click();
}
}
else if(document.lay ers){
if(event.which == 13){
event.returnVal ue=false;
event.cancel = true;
btn.focus();
btn.click();
}
}
}
function findObj(n, d) {
var p,i,x;
if(!d)
d=document;
if((p=n.indexOf (""?""))>0 && parent.frames.l ength) {
d=parent.frames[n.substring(p+1 )].document;
n=n.substring(0 ,p);
}
if(!(x=d[n])&&d.all)
x=d.all[n];
for (i=0;!x&&i<d.fo rms.length;i++)
x=d.forms[i][n];
for(i=0;!x&&d.l ayers&&i<d.laye rs.length;i++)
x=findObj(n,d.l ayers[i].document);
if(!x && d.getElementByI d)
x=d.getElementB yId(n);
return x;
}
// -->
</SCRIPT>";
textControl.Att ributes.Add("on keydown", "fnTrapKD(' " +
defaultButton.C lientID + "',event)") ;
thisPage.Regist erStartupScript ("ForceDefaultT oScriptImage",
theImageScript) ;