I am building a page in asp.net c#. In it I have a textbox and a dropdownlist. On typing in textbox, if the value is found in dropdownlist, it should be selected. Also on pressing the up and down keys in the textbox the dropdownlist gets the focus. On pressing enter in dropdownlist the textbox is filled with dropdownlist’s value. Here is the javascript code I have used, it is working perfectly in IE but not in firefox.
I used “alert” to detect where the problem is. In firefox the code stops working after the bolded part. I’ve done a little research and found that keyCode only works for IE. So what whould I write to get the keycode in firefox?
<script language=javascript>
var UPKEY = false;
var DOWNKEY = false;
var ENTERKEY = false;
function KeyDownHandler(e)
{
UPKEY = false;
DOWNKEY = false;
ENTERKEY = false;
var x = ”;
if (document.all)
{
var evnt = window.event;
x = evnt.keyCode;
}
[B]else
{
x = e.keyCode;
}
DetectKeys(x, true);
showValue();
}
function KeyDownHandler2(e)
{
UPKEY = false;
DOWNKEY = false;
ENTERKEY = false;
var x = ”;
if (document.all)
{
var evnt = window.event;
x = evnt.keyCode;
}
else
{
x = e.keyCode;
}
DetectKeys(x, true);
enterValue();
}
function DetectKeys(KeyCode, IsKeyDown)
{
if (KeyCode == ’38’)
{
UPKEY = IsKeyDown;
}
else if (KeyCode == ’40’)
{
DOWNKEY = IsKeyDown;
}
else if (KeyCode == ’13’)
{
ENTERKEY = IsKeyDown;
}
}
function showValue()
{
if(UPKEY)
{
document.getElementById(“ctl00_PageContent_LBStations”).focus();
}
else if(DOWNKEY)
{
document.getElementById(“ctl00_PageContent_LBStations”).focus();
}
else
{
txt = document.getElementById(“ctl00_PageContent_txtNewStation”).value;
count = document.getElementById(“ctl00_PageContent_LBStations”).options.length;
for (i = 0; i < count; i++)
{
var drp = document.getElementById(“ctl00_PageContent_LBStations”).options[i].text;
len = txt.length
sub = drp.substring(0, txt.length)
if (sub == txt)
{
document.getElementById(“ctl00_PageContent_LBStations”).selectedIndex = i
}
}
}
}
function enterValue()
{
if(ENTERKEY)
{
var ddlStation = document.getElementById(“ctl00_PageContent_LBStations”);
var Text = ddlStation.options[ddlStation.selectedIndex].text;
var Value = ddlStation.options[ddlStation.selectedIndex].value;
document.getElementById(“ctl00_PageContent_txtNewStation”).value = Text;
document.getElementById(“ctl00_PageContent_txtHiddenStation”).value = Value;
document.getElementById(“ctl00_PageContent_txtNewStation”).focus();
}
}
</script>