Avatar billede hobbez Nybegynder
08. oktober 2003 - 19:36 Der er 23 kommentarer og
1 løsning

Hente to værdier ud fra valg i en dropdown-liste

Det her funker jo glimrende:

<select size="1" name="fast_dpi" onChange=this.form.resolution.value=this.form.fast_dpi.value>
<option>------ V&aelig;lg opl&oslash;sning ------</option>
<option value="150">God kvalitet = 150 DPI</option>
<option value="200">200 DPI</option>
<option value="250">250 DPI</option>
<option value="300">Optimal kvalitet = 300 DPI</option>
</select>

Når jeg vil have sat en værdi i et felt i formen (resolution) ud fra valget i dropdownboksen.

Men hvis jeg nu gerne vil have sat TO værdier, i hver sit felt, hvordan gør jeg så nemmest?

Jeg kan jo ikke lave en

<option value="200" value2="15">200 DPI og 15 cm</option>

eller lignende....

Hvordan gør jeg nemmest?

/Rob
Avatar billede erikjacobsen Ekspert
08. oktober 2003 - 19:38 #1
<option value="200,15">
Avatar billede hobbez Nybegynder
08. oktober 2003 - 19:42 #2
Det kan jeg ikke få til at virke - den opfatter bare this.form.fast_dpi.value som 200,15 - som en tekststreng.

/Rob
Avatar billede erikjacobsen Ekspert
08. oktober 2003 - 19:44 #3
Ja, ja, du skal selv dele den i de 2 værdier ;)
Avatar billede hobbez Nybegynder
08. oktober 2003 - 19:50 #4
Haha, ja det ved jeg godt :o)

Jeg kunne også skrive <option value="200_deldetoværdierher_15"> og så lave noget strengbehandling - det var jo det jeg gerne ville undgå!

/Rob
Avatar billede erikjacobsen Ekspert
08. oktober 2003 - 19:54 #5
Ok da. Så vil du ikke lave strengbehandling

dpi[7]=200;
cm[7]=15;

og så

  <option value="7"> ...

Kan du se ideen
Avatar billede hobbez Nybegynder
08. oktober 2003 - 20:01 #6
Det jeg helst ville var, at kunne indtaste værdier ét sted - nemlig i <option value=" "> og så ud fra dette have mine værdier, uden at jeg behøvede hente dem et andet sted.

Så hellere strengbehandling :o)

/Rob
Avatar billede erikjacobsen Ekspert
08. oktober 2003 - 20:10 #7
Der er mange muligheder...

  <option value="dpi=200;cm=15;">....

og så lave en eval(...) på værdien, når du får den.
Avatar billede hobbez Nybegynder
08. oktober 2003 - 20:22 #8
Jeg har kastet mig ud i:

<option value="10x15">10 cm gange 15 cm</option>

og så noget script der ser sådan her ud:

function splitstreng(streng) {
var indhold = new Array(2);
arr_substrings = streng.split("x");
obj.width2.value=arr_substrings[1];

Det funker selvfølgelig ikke en skid :o(

Hvordan får jeg værdien fra mit array tilbage til feltet i min form?

/Rob
Avatar billede erikjacobsen Ekspert
08. oktober 2003 - 20:30 #9
Det kommer jo an på hvad der ellers står.
Avatar billede hobbez Nybegynder
08. oktober 2003 - 20:34 #10
Ja, det er så midt i en tabel:

<select size="1" name="fast_str" onChange=splitstreng(this.form.fast_str.value)>
                                  <option>------ V&aelig;lg standardst&oslash;rrelse
                                  ------</option>
                                  <option value="10x15">10 cm gange 15 cm</option>
                                  <option value="12">12 cm gange 18 cm</option>
                                  <option value="13">13 cm gange 18 cm</option>
                                  <option value="20">20 cm gange 30 cm</option>
                                </select></td>


Og øverst så et javascript som det nævnt ovenfor:

function splitstreng(streng) {
var indhold = new Array(2);
arr_substrings = streng.split("x");
obj.width2.value=arr_substrings[1];
}

Og det funker ikke.

/Rob
Avatar billede hobbez Nybegynder
08. oktober 2003 - 20:39 #11
Noget af det er jo så test - men det her funker heller ikke:

<select size="1" name="fast_str" onChange=splitstreng(this.form.fast_str.value)>
                                  <option>------ V&aelig;lg standardst&oslash;rrelse
                                  ------</option>
                                  <option value="10x15">10 cm gange 15 cm</option>
                                                                  </select>

/Rob
Avatar billede erikjacobsen Ekspert
08. oktober 2003 - 20:45 #12
Du kan nøjes med

  onChange="splitstreng(this.value)"

eller for lidt flere browsere:

  onChange="splitstreng(this.options[this.selectedIndex].value)"

Hvad er det der ikke virker?
Avatar billede hobbez Nybegynder
08. oktober 2003 - 21:00 #13
Jeg kan ikke få en værdi tilbage til feltet <input name=width2 size=5> fra mit javascript.

/Rob
Avatar billede erikjacobsen Ekspert
08. oktober 2003 - 21:33 #14
Hvad er "obj" ?
Avatar billede hobbez Nybegynder
08. oktober 2003 - 21:38 #15
Det troede jeg var korrekt syntax.

Hvad er den ellers?

this.document.width2.value=arr_substrings[1];

funker heller ikke.

/Rob
Avatar billede erikjacobsen Ekspert
08. oktober 2003 - 21:45 #16
du mangler da at angive formen. Men brug en alert() lige før til at se om du
har værdien, eller der er noget andet galt.
Avatar billede hobbez Nybegynder
08. oktober 2003 - 21:56 #17
En alert returnerer fint værdien, så problemet er altså 'bare' at få værdien ned i feltet.

Hvad er syntax'en?

/Rob
Avatar billede hobbez Nybegynder
08. oktober 2003 - 21:59 #18
this.document.form.height2.value

funker ikke, og

this.form.height2.value

funker heller ikke.

/Rob
Avatar billede erikjacobsen Ekspert
08. oktober 2003 - 22:01 #19
Hvad hedder din form?
Avatar billede hobbez Nybegynder
08. oktober 2003 - 22:11 #20
fotoberegner

/Rob
Avatar billede erikjacobsen Ekspert
08. oktober 2003 - 22:13 #21
document.fotoberegner.height2.value
Avatar billede hobbez Nybegynder
08. oktober 2003 - 22:16 #22
Hvor er jeg dum :o) Takker!!!

Læg lige et svar, så du kan få dine point.

/Rob
Avatar billede erikjacobsen Ekspert
08. oktober 2003 - 22:19 #23
ok ;)
Avatar billede erikjacobsen Ekspert
08. oktober 2003 - 22:20 #24
;)
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