A cópia do código é a seguinte:
<select id = "name" name = "name"
onKeydown = "ClearSelect (este, evento);"
onKeypress = "WritesElect (este, evento);">
<opção value = ""> </pption>
<opção value = "test1"> test1 </pption>
<opção value = "test2"> test2 </pption>
<opção value = "test3"> test3 </pption>
</leclect>
<Cript>
função clearselect (obj, e)
{
opt = obj.options [0];
opt.Selected = "Selected";
if ((e.KeyCode == 8) || (e.charcode == 8)) // use a chave do backspace para implementar a função de edição literal da deleção literalmente
{
opt.value = opt.value.substring (0, opt.value.length> 0? Opt.value.Length-1: 0);
opt.text = opt.value;
}
if ((e.KeyCode == 46) || (e.charcode == 46)) // use a chave de exclusão para alcançar a função de edição literal
{
opt.value = "";
opt.text = opt.value;
}
// também pode perceber a resposta de outras chaves
}
função writiteSelect (obj, e)
{
opt = obj.options [0];
opt.Selected = "Selected";
opt.value += string.FromCharCode (e.charcode || e.KeyCode);
opt.text = opt.value;
}
função proibidbackspace () // Para evitar o retorno do backspace à função da página anterior e conflito com a função de edição dessa caixa suspensa no IE, a função backspace precisa ser desativada. O ProibidbackSpace pode ser escrito em <Body OnKeyDown = "Forbidbackspace ();">.
{
if ((event.KeyCode == 8) && (event.srcelement.type! = "text" && event.srcelement.type! = "textarea" && event.srcelement.type! = "senha"))))
{
event.KeyCode = 0;
event.returnValue = false;
}
}
</script>