Avatar billede pablo Nybegynder
02. januar 2003 - 01:58 Der er 10 kommentarer og
1 løsning

Overfør værdi mellem dynamiske formfelter

Hej

Jeg har en følgende kode, som er 2 kolonner i en alm. tabel, som bliver udskrevet på skærmen fra en database:

-------------------------------------------------------------
Response.Write "<tr>"
Response.Write "<td><input type=text value='' name=" & objRS("lonkode_kode") & "_enh></td>"
Response.Write "<td><input type=text value='' name=" & objRS("lonkode_kode") & "_fak></td>"
Response.Write "</tr>"
-------------------------------------------------------------

Feltnavnene i den første række er f.eks. 3000_enh og 3000_fak, hvor de i næste række måske hedder: 3050_enh og 3050_fak.

Jeg har brug for, at når der indtastes en værdi i det første form-felt, så overføres denne værdi automatisk til det andet form-felt når feltet forlades.
Feltnavnene er dynamiske, så der skal bruges et eller andet lille snedigt stykke javascript, som kan klare dette.

Derudover må der kun tastes tal og komma i felterne, og hvis der er tastet andet skal den komme med en standard ALERT box.

Er der en snedig java-haj der kan se løsningen på dette?
Avatar billede Slettet bruger
02. januar 2003 - 14:20 #1
Indsæt dette øverst i head på siden:

<script>
function overfoer(felt) {
if (!felt.value.match(/^[\d,]+$/)) {
alert("Du må kun skrive tal og komma i feltet!");
felt.focus();
}
else {
tal = felt.name.substring(0, felt.name.indexOf("_"));
af = tal + ((felt.name.indexOf("_enh") != -1) ? "_fak" : "_enh");
felt.form.elements[af].value = felt.value;
}
}
</script>

Og dette ved din løkke.

Response.Write "<tr>"
Response.Write "<td><input type=text value='' name=" & objRS("lonkode_kode") & "_enh onBlur=""overfoer(this);""></td>"
Response.Write "<td><input type=text value='' name=" & objRS("lonkode_kode") & "_fak onBlur=""overfoer(this);""></td>"
Response.Write "</tr>"

Hvis det (mod forventning, selvfølgelig) ikke virker, så må du meget gerne smide et link! :)
Avatar billede pablo Nybegynder
02. januar 2003 - 15:27 #2
Hej igen
Tak for dit svar.
Når jeg kører dit script får jeg følgende fejl:

"Fejl: form.elements er null eller"
Avatar billede pablo Nybegynder
02. januar 2003 - 15:29 #3
Argh.. Her kommer resten:

"..eller ikke et objekt".

Min form hedder "FORM", så det skulle være ok.
Avatar billede Slettet bruger
02. januar 2003 - 17:21 #4
Måske er det netop det, der er problemet... :)
Men smid lige et link.
Avatar billede pablo Nybegynder
03. januar 2003 - 10:49 #5
Avatar billede Slettet bruger
03. januar 2003 - 11:25 #6
For det førset skal du overhovedet ikke rette i mit script! :)
Derfor skal du ændre "felt.form1..." tilbage til "felt.form..."
For det andet opstår problemet, fordi JavaScript ikke tillader navne på elementer, der starter med tal. Så du bliver altså nødt til at sætte et bogstav (helst det samme) foran tallene eller undlade at bruge denne funktion.
Avatar billede pablo Nybegynder
03. januar 2003 - 13:00 #7
Sorry ;-)
Jeg troede formens navn skulle angives i scriptet.
Nu har jeg rettet de 2 ting, men den kommer stadig med samme fejl.
Jeg har sat "a_" foran alle form-navnene.
Avatar billede Slettet bruger
03. januar 2003 - 13:14 #8
I mit script skal du lige rette denne linje:

tal = felt.name.substring(0, felt.name.indexOf("_"));

... til dette:

tal = felt.name.substring(0, felt.name.lastIndexOf("_"));
Avatar billede pablo Nybegynder
03. januar 2003 - 15:07 #9
Du er en HAJ!!!!  Nu kører det :-)
Laver du lige din kommentar om til et svar, så du kan få lidt point?
Tusinde tak for hjælpen...
Avatar billede Slettet bruger
04. januar 2003 - 14:48 #10
Hokuspokus, her er en kommentar, lad den blive til et svar!

**whooosh** (lyden af tryllestøv)
Avatar billede Slettet bruger
04. januar 2003 - 14:49 #11
:)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester