26. december 2002 - 17:34Der er
6 kommentarer og 1 løsning
Opdatering af side uden reload
Jeg er ny bruger af Eksperten, så bær over med mig, hvis jeg spørger dumt, men...
Jeg har en formular, hvor jeg med ASP genererer en række dropdown-bokse. Desuden er der mulighed for at indtaste de samme data i input-felter, hvis man f.eks. kender et ordrenummer i forvejen. Det er gjort sådan, fordi det er hurtigere at taste det end at slå det op i en dropdown.
Hver gang en bruger taster noget i et felt, vil jeg gerne checke indtastningen (onChange) og sætte selected i den korresponderende dropdown-boks med den samme værdi - altså via et databaseopslag. Hvis den indtastede værdi er forkert, sætter jeg tekstfarven i input-feltet til #FF0000, for ikke at forstyrre brugeren med en alert-boks.
Kan det lade sig gøre uden at reloade siden, så brugeren stadig uhindret kan bruge tab-rækkefølgen?
Der henvises flere steder her på sitet til brug af skjulte frames eller iframes, men er det løsningen og hvordan adresseres de i praksis?
Koden er lidt kompleks, så jeg vil helst undgå at bringe den her.
Hvis ikke olebole har tid til at svare, så håber jeg at han har fået en værdig afløser, for de fleste spørgsmål i retning af det her, ser ud til at være besvaret af ham! :-)
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
Slettet bruger
26. december 2002 - 17:46#1
Jeg håber, du kan nøjes med mig...
For det er nemt nok at løse. Brug denne funktion:
<script> function findSel(frm) { val = frm.tekstFelt.value.toLowerCase(); sel = frm.selectBoks; for (i = 0; i < sel.length; i++) { if (sel.options[i].value.toLowerCase() == val) { sel.selectedIndex = i; return; } } frm.tekstFelt.style.backgroundColor = "#FF0000"; } </script>
Ovenstående gør, at når brugeren har indtastet noget i tekst-feltet og går væk fra det, vælges den option, hvis value er lig med det indtastede. I øvrigt bør funktionen nok se således ud:
function findSel(frm) { felt = frm.tekstFelt; val = felt.value.toLowerCase(); if (val != "") { sel = frm.selectBoks; for (i = 0; i < sel.length; i++) { if (sel.options[i].value.toLowerCase() == val) { felt.style.backgroundColor = "#000000"; sel.selectedIndex = i; return; } } felt.style.backgroundColor = "#FF0000"; } }
Tak, det ser ud til at virke, men jeg har mange sæt af input/select, så kræver det en funktion pr. sæt at overføre navnene på felterne, eller kan jeg parametisere dem? De unikke navne bruger jeg jo, når jeg submitter formen. Det kan jeg sikkert sagtens, men jeg er ikke så hård til java :-|
Nu ser det ud til, at jeg har fået det til at virke selv. Tilbage er kun ét problem. Jeg synes at backgroundcolor er lige voldsom nok at skifte, så jeg vil gerne ændre det til kun at være teksten, der bliver rød. Hvad hedder den attribut i Java? Så vidt jeg kan finde ud af hedder den .color, men det ser ikke ud til at virke. Kan du fortælle mig, hvad jeg gør forkert? Farverne skifter fint, hvis jeg bruger backgroundcolor, så det kan kun være navnet attributen, der er forkert.
function findSel(frm) { felt = frm.strOrdre; val = felt.value.toLowerCase(); if (val != "") { sel = frm.egne; for (i = 0; i < sel.length; i++) { if (sel.options[i].value.toLowerCase() == val) { felt.style.Color = "#000000"; sel.selectedIndex = i; return; } } felt.style.Color = "#FF0000"; sel.selectedIndex = 0; return; } }
Men du har fortjent dine point, så dem får du under alle omstændigheder.
Synes godt om
Slettet bruger
29. december 2002 - 16:02#5
Det skal skrives med småt. Det er altid en god idé at prøve sådan noget som at ændre case. Men altså:
felt.style.color = "#000000";
Dog synes jeg, det er en god idé at ændre baggrundsfarven, men måske til en lidt mere neutral farve?
Dooh...jeg var ikke klar over, at java er case sensitiv.. :-)
Tak for hjælpen!
Synes godt om
Slettet bruger
30. december 2002 - 11:57#7
Både Java og JavaScript er case-sensitivt...
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.