Toon posts:

[JavaScript] code werkt in IE, maar niet in Opera ed.

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb deze code geschreven en werkt erg goed in IE, maar (vermoedelijk) Netscape/Mozilla based browsers willen niet! Kreeg namelijk een reactie van iemand die gebruik maakt van Opera en dat werkt dus blijkbaar niet.
Iemand die mij misschien kan helpen met het script, zodat het ook werkt in de genoemde browsers?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
function submitForm(f) {
    if((!f.service[0].checked) && (!f.service[1].checked) && (!f.service[2].checked)){
        alert('Maak een keuze uit onze services');
        return false;
    }
   var nick = f.user.value;
   if(nick.match(/^[A-Za-z0-9\\[\]\{\}^\\\|\_\-`]{1,32}$/))
    if(f.service[0].checked){
        f.action = f.service[0].value;
        }
    if(f.service[1].checked){
        f.action = f.service[1].value;
        }
    if(f.service[2].checked){
        f.action = f.service[2].value;
        }

    f.Nickname.value = f.user.value;
    f.Password.value = f.user.passwd;
    f.submit.click();
      return true;
   alert('Vul een geldige gebruikersnaam in');
   f.user.value = nick.replace(/[^A-Za-z0-9\\[\]\{\}^\\\|\_\-`]/g, '');
   return false;
}

Wat het dus doet, even voor de duidelijkheid. Er kan een keuze gemaakt worden uit 3 services d.m.v. radio buttons. Als radio button 1 is gechecked dan moet de form action anders zijn dan bij radio button 2 of 3. Het is dus om snel in te kunnen loggen op die services. Vandaar die Nickname, Password, user, passwd.

In IE werkt het dus WEL.

Bedankt voor jullie meedenken alvast.


edit:

Sorry!!! ik zie net dat ik het verkeerd heb geplaatst, moest natuurlijk in "Programming & Webscripting". Iemand die het even wil verplaatsen???

[ Voor 8% gewijzigd door Verwijderd op 02-07-2003 01:26 ]


  • Blaise
  • Registratie: Juni 2001
  • Niet online
Sorry!!! ik zie net dat ik het verkeerd heb geplaatst, moest natuurlijk in "Programming & Webscripting". Iemand die het even wil verplaatsen???
JavaScript hoort wel hier ;)

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:02

crisp

Devver

Pixelated

zo op het 1e oog denk ik dat het probleem zit in de f.submit.click();
Als je deze code gebruikt vanuit een onsubmit event handler is dat trouwens ook niet nodig; de return true zorgt er dan al voor dat het form netjes gesubmit wordt.
Maar waarom installeer je zelf niet even Opera en Mozilla? Beide browsers hebben ook javascript consoles voor de foutmeldingen die beter en duidelijker zijn als die van IE :)

Intentionally left blank


  • reddevil
  • Registratie: Februari 2001
  • Laatst online: 06-10-2025
idd, die submit.click is niet echt zinvol als je vanuit een onsubmit doet, maar als je dat niet doet, maar bijvoorbeeld via een a href dit script aanroept, moet je gewoon document.<formname>.submit() doen

  • McVirusS
  • Registratie: Januari 2000
  • Laatst online: 21-08 10:46
reddevil schreef op 02 July 2003 @ 08:46:
idd, die submit.click is niet echt zinvol als je vanuit een onsubmit doet, maar als je dat niet doet, maar bijvoorbeeld via een a href dit script aanroept, moet je gewoon document..submit() doen
Deze fout wordt erg vaak gemaakt, de enige goede manier om een form via javascript te submitten is: document.forms['formnaam'].submit();. Zorg er overigens wel voor dat je geen elementen hebt die "submit" heten anders gaat dat niet werken (en dit is allemaal de schuld van Internet Explorere IMHO :P).

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:02

crisp

Devver

Pixelated

McVirusS schreef op 02 July 2003 @ 09:11:
[...]


Deze fout wordt erg vaak gemaakt, de enige goede manier om een form via javascript te submitten is: document.forms['formnaam'].submit();. Zorg er overigens wel voor dat je geen elementen hebt die "submit" heten anders gaat dat niet werken (en dit is allemaal de schuld van Internet Explorere IMHO :P).
gerelateerd hieraan is de o zo foute en foeilelijke
PHP:
1
if ($submit) { }

in PHP.
En explorer gaat inderdaad de fout in door alle elementen met een name attribuut property te maken van het window object; daarom gaat het ook fout.

Intentionally left blank

Pagina: 1