Velbekomme :D
Har lige et par modificerede versioner af funktionerne (der gør søgningen case insensitive i de to nye funktioner). Desuden benyttes der onkeyup i stedet for onkeypress, da den fungerer som den skal - også i FF 1.0:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "
http://www.w3.org/TR/html4/loose.dtd"> <html>
<head>
<title>testform</title>
<script type="text/javascript">
var firmainfo = [['firma1','adresse1'],['firma2','adresse2'],['firma3','adresse3']];
function findFirmaInfo(obj) {
var frm = obj.form;
for(var i = 0; i < firmainfo.length; i++) {
if(firmainfo[i][0].toLowerCase() == frm.navn.value.toLowerCase()) {
frm.navn.value = firmainfo[i][0];
frm.adresse.value = firmainfo[i][1];
return true;
}
}
}
// denne version søger på starten af et firmanavn og returnerer info
// for den første den finder...
function findFirmaInfoStart(obj) {
var frm = obj.form;
var fnavn = frm.navn.value.toLowerCase();
for(var i = 0; i < firmainfo.length; i++) {
if(firmainfo[i][0].toLowerCase().substr(0,fnavn.length) == fnavn) {
frm.navn.value = firmainfo[i][0];
frm.adresse.value = firmainfo[i][1];
return true;
}
}
}
// denne version søger efter et firmanavn som indeholder teksten
// og returnerer info for den første den finder...
function findFirmaInfoLike(obj) {
var frm = obj.form;
var fnavn = frm.navn.value.toLowerCase();
for(var i = 0; i < firmainfo.length; i++) {
if(firmainfo[i][0].toLowerCase().indexOf(fnavn) > -1) {
frm.navn.value = firmainfo[i][0];
frm.adresse.value = firmainfo[i][1];
return true;
}
}
}
</script>
</head>
<body>
<form id="Form1" method="post">
<input type="text" name="navn" onkeyup="findFirmaInfoLike(this)"><br>
<input type="text" name="adresse"><br>
</form>
</body>
</html>
Du kan desuden overveje at slette felternes indhold hvis firmaet ikke findes (det kan du bare gøre ubetinget efter for-sætningen i de forskellige funktioner, da koden kun udføres hvis firmaet ikke findes).