Po opravení syntaktických chýb by to fungovalo, ale ak by si to chcel zapísať trochu kratšie a efektívnejšie, tak by sa to dalo ďalej upraviť. Napr. by si nemusel mať v tabuľke preklad z malého a veľkého písmena na ten istý reťazec, prípadne by si si mohol ušetriť jedno lineárne vyhľadávanie.
Výsledok by mohol vyzerať nejako takto:
function preloz(form) {
var morse = {
"A":"2","B":"22-","C":"222-","D":"3-","E":"33-","F":"333-","G":"4-",
"H":"44-","I":"444-","J":"5-","K":"55-","L":"555-","M":"6-","N":"66-",
"O":"666-","P":"7-","Q":"77-","R":"777-","S":"7777-","T":"8-","U":"88-",
"V":"888-","W":"9-","X":"99-","Y":"999-","Z":"9999-",
" ":" ","_":" ",".":".-.-.-",",":"--..--",
"?":"..--..",":":"---...",";":"-.-.-.","-":"-....-",
"!":"!","/":"-..-."
}
var result = ""
var text = form.vstup.value.toUpperCase();
for (var i = 0; i < text.length; ++i)
morse[text.charAt(i)] && (result += morse[text.charAt(i)]);
form.vystup.value = result;
}