Я вижу две возможные причины.
1 - способ объявления функции. Я никогда не видел такого, хотя, думаю, это работает.
Может быть, попробуйте следующее и посмотрите, все ли еще не работает:
function drop(id)
{
// same code
}
2 - Возвращаемое значение false в IE не всегда ведет себя должным образом (поверьте, это зависит от компьютера). Поэтому вместо возврата false попробуйте:
onChange="drop(id);event.returnValue=false;return false;"
Если возможно, создайте метод, подобный этому:
function CrossBrowserFalse()
{
if(IE) // use whatever you want to detect IE
{
event.returnValue = false;
}
return false;
}
и тогда в своих методах вы можете использовать:
onChange="drop(id);return CrossBrowserFalse();"
... да, IE странный иногда (часто)
Если эти два сбой, по крайней мере, убедитесь, что ваша функция вызова вызывается, поместив туда несколько предупреждений или точек останова, если ваша IDE поддерживает ее для javascript.