Avatar billede oasen Nybegynder
06. juni 2003 - 20:06 Der er 24 kommentarer

Lille funktion der skal åbne vindue ved submit

Følgende skal afhængig af formularens indhold åbne et vindue, men jeg kan ikke få det til at virke ordentligt.
Formularen skal afsendes uanset hvad.

function open_window() {
  var metode == payment.metode.value;
  if (payment.metode.value == "Kreditkort") {
    open_window('http://www.xxx.yyy');
  }
}

----- klip-----

<form name="payment" method="POST" action="" onSubmit="open_window();">
<input type="radio" value="Bankoverførsel" name="metode">
<input type="radio" value="Kreditkort" name="metode">
<input type="submit" value="Gennemfør">
</form>
Avatar billede oasen Nybegynder
06. juni 2003 - 20:09 #1
open_window = window.open

- selvfølgelig...
Avatar billede Slettet bruger
06. juni 2003 - 20:09 #2
open_window('http://www.xxx.yyy');
rettes til
Window.open('http://www.xxx.yyy');
Avatar billede Slettet bruger
06. juni 2003 - 20:10 #3
Og det så du selv :-)
Avatar billede oasen Nybegynder
06. juni 2003 - 20:20 #4
Ja, men det fungerer stadig ikke. Vinduet åbnes ikke, selvom metode=Kreditkort.
Avatar billede Slettet bruger
06. juni 2003 - 20:23 #5
prøv:
function open_window() {
  var metode = payment.metode.value;
  if (metode == "Kreditkort") {
    window.open('http://www.xxx.yyy');
  }
}
Avatar billede oasen Nybegynder
06. juni 2003 - 20:23 #6
Der skal måske noget timeout på, før formen sendes, så vinduet kan nå at blive åbnet...?
Avatar billede Slettet bruger
06. juni 2003 - 20:24 #7
Eller:
function open_window() {
  var metode = payment.metode.value;
  if (metode == "Kreditkort") {
    payment.action = 'http://www.xxx.yyy';
    payment.submit();
  }
}
Avatar billede oasen Nybegynder
06. juni 2003 - 20:25 #8
Ingen fejl, men vinduet åbnes stadig ikke...
Avatar billede roenving Novice
06. juni 2003 - 20:26 #9
du mangler henvisningen gennem document:

var metode = document.payment.metode.value;
Avatar billede oasen Nybegynder
06. juni 2003 - 20:31 #10
Hmm... heller intet hjalp det...
Avatar billede roenving Novice
06. juni 2003 - 20:38 #11
Radios skal du finde værdi for ved at teste dem een for een:

function open_window(f) {
  for(i=0;i<f.metode.length;i++){
    if (f.metode[i].checked)metode=f.metode.value;
  }
  //var metode == f.metode.value;
  if (payment.metode.value == "Kreditkort") {
    open_window('http://www.xxx.yyy');
  }
}

----- klip-----

<form name="payment" method="POST" action="" onSubmit="open_window(this);">
<input type="radio" value="Bankoverførsel" name="metode">
<input type="radio" value="Kreditkort" name="metode">
<input type="submit" value="Gennemfør">
</form>

Hvis du havde valgt en select kunne vi have fundet den udvalgte med selectedIndex, men value reagerer altså ikke i javascript som ved submit ;-(
Avatar billede roenving Novice
06. juni 2003 - 21:03 #12
-- hov, jeg havde jo kopieret fra det samlede, så:

function open_window(f) {
  for(i=0;i<f.metode.length;i++){
    if (f.metode[i].checked)metode=f.metode[i].value;
  }
  if (metode == "Kreditkort") {
    window.open('http://www.xxx.yyy');
  }
}

-- og også en tavetosse eller to ;-(
Avatar billede oasen Nybegynder
07. juni 2003 - 07:01 #13
Ok - jeg vil lige eksperimentere lidt :))
Avatar billede Slettet bruger
08. juni 2003 - 14:49 #14
I dette tilfælde er dette nok noget nemmere:

function open_window(f) {
  if (f.metode[1].checked)
    window.open("http://www.xxx.yyy", "nytVindue");
}
Avatar billede roenving Novice
08. juni 2003 - 14:52 #15
>>phoenixv

-- selvfølgelig, der er jo ikke nogen grund til at kravle op, hvor der højest ...
Avatar billede Slettet bruger
08. juni 2003 - 14:54 #16
Nope; generelt er det jo godt med generiske løsninger som din, men man kan nu godt tillade sig at være specifik en gang i mellem.
Og så er det vist også på tide, at ECMA får indført en "checkedIndex" property for radio-buttons. Det andet her er for åndsvagt! :)
Avatar billede roenving Novice
08. juni 2003 - 14:59 #17
-- helt enig ;O)
Avatar billede Slettet bruger
08. juni 2003 - 15:02 #18
Det er jo helt hen i vejret, at selectbokse skal have en selectedIndex-property, mens man må slås i sit ansigts sved med de radio-buttons. Specielt når nu det to ting er så ens i funktionalitet.
Vedkommende, der har udtænkt det, burde fyres på stedet - og gerne også køres over et par gange.
Avatar billede Slettet bruger
08. juni 2003 - 15:02 #19
:)
Avatar billede roenving Novice
08. juni 2003 - 15:06 #20
-- men jeg kan nu godt se den strukturelle forskel på een select med nestede options og adskillige uafhængige checkboxes eller radios, som 'bare' kædes sammen med et fælles navn ... ,-)
Avatar billede Slettet bruger
09. juni 2003 - 09:41 #21
Hm, opfattelsen af dem som ét element er vel det samme over hele linjen. Den store forskel ligger for mig at se i layoutet - noget JavaScript ikke plejer, og heller ikke bør, tage stilling til.
Avatar billede roenving Novice
09. juni 2003 - 13:35 #22
Det har du jo så evigt ret i ...

-- men grunden til, at jeg nævner det, er, at jeg sammenkæder det med javascripts udvikling fra en ret primitiv ting i Netscapes første implementering '-)
Avatar billede olebole Juniormester
10. juni 2003 - 15:12 #23
<ole>

Radio-buttons hører sammen i én gruppe og kan derfor sagtens opfattes som værende ét element.
Check-box'e ville det derimod være temmelig misvisende at kæde sammen til ét element  ;o)

/mvh
</bole>
Avatar billede Slettet bruger
10. juni 2003 - 15:54 #24
Ja, den fangede jeg heller ikke lige... :)
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