[JAVASCRIPT] Uitroeptekentje in IE na submit

Pagina: 1
Acties:

  • kokorico
  • Registratie: Januari 2004
  • Laatst online: 17-05 10:39
Hoi,

ik het onderstaande javascript:


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
26
27
28
29
function submit_multiad(message)
{

    var numberClicked = 0;
    for (var i=0; i < document.mijnads.elements.length; i++)
    {
        if (document.mijnads.elements[i].name == 'adid[]' && document.mijnads.elements[i].type == 'checkbox' && document.mijnads.elements[i].checked)
            numberClicked++;
    }
    if (numberClicked == 0)
    {
           alert_message = "\nU heeft niets geselecteerd.\n";
           alert(alert_message)
       return false;
    
    }

    else
    {
       if(window.confirm(message))
       {
       return true;
       }
       else
       {
       return false;
       }
    }
}


HTML:
code:
1
2
3
<input type=\"submit\" name=\"btn[2naar3]\" value=\"Verwijder selectie\" class=\"submit\"
  onclick=\"javascript:return submit_multiad('Hierdoor worden de geselecteerde advertentie\'s verwijderd. Weet u zeker?')\">
<input type=\"submit\" name=\"btn[2naar1]\" value=\"Print selectie\" class=\"submit\">


Wat doet dit?

1. Controleert eerst als er van een checkbox array ten minste 1 gechecked is zoieniet return false
2. toont een confirm message.

Alles werkt prima alleen verschijnt er na het drukken op de submittoets en het op ok klikken van de confirm een uitroepteken in IE. M.a.w. er zit een foutje in dit scriptje. Iemand idee wat ik fout doe?

  • pasta
  • Registratie: September 2002
  • Laatst online: 04-04 23:18

pasta

Ondertitel

Dubbelklik es op dat uitroeptekentje, dan zie je wat er fout is volgens IE. ;)

Signature


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 19-05 21:24

NMe

Quia Ego Sic Dico.

Bij een onclick hoef je niet nog eens javascript: voor je statements te zetten, en verder zou ik op regel 7 wat meer haakjes gebruiken. (Duidelijker en minder foutgevoelig. Liever wat haakjes teveel dan wat haakjes te weinig.)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • 418O2
  • Registratie: November 2001
  • Nu online
gebruik firefox, met de javascript inspector, weet je gelijk wat er mis is

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 10-05 18:53

Bosmonster

*zucht*

nm

zet voor die \' in message nog een extra \

\\'

[ Voor 189% gewijzigd door Bosmonster op 23-11-2004 08:57 ]


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 14:55

crisp

Devver

Pixelated

Het is trouwens common practice om form-validatie vanuit een onsubmit handler aan te roepen...

Intentionally left blank


  • kokorico
  • Registratie: Januari 2004
  • Laatst online: 17-05 10:39
crisp schreef op dinsdag 23 november 2004 @ 09:08:
Het is trouwens common practice om form-validatie vanuit een onsubmit handler aan te roepen...
Wat bedoel je daarmee?

  • kokorico
  • Registratie: Januari 2004
  • Laatst online: 17-05 10:39
pasta schreef op dinsdag 23 november 2004 @ 02:14:
Dubbelklik es op dat uitroeptekentje, dan zie je wat er fout is volgens IE. ;)
Juist, maar dat verschijnt telkens na de alert en confirm. Dus wanneer het aan het submitten is. Dat verschijnt maar een fractie van een seconde.

voorbeeld te bekijken op: http://www.easybid.nl/mijnads/4/1

Naam: Peter
wachtwoord : 270682

[ Voor 14% gewijzigd door kokorico op 23-11-2004 09:33 ]


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
kokorico schreef op dinsdag 23 november 2004 @ 09:31:
[...]

Juist, maar dat verschijnt telkens na de alert en confirm. Dus wanneer het aan het submitten is. Dat verschijnt maar een fractie van een seconde.
Dan pas je je functie gewoon aan zodat 'ie altijd false terug geeft, dan zou je het uitroeptekentje wel kunnen bekijken. Maar omdat je niet de onsubmit gebruikt kon dat ook nog wel eens niet gaan lukken.

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • kokorico
  • Registratie: Januari 2004
  • Laatst online: 17-05 10:39
RobIII schreef op dinsdag 23 november 2004 @ 09:33:
[...]

Dan pas je je functie gewoon aan zodat 'ie altijd false terug geeft, dan zou je het uitroeptekentje wel kunnen bekijken. Maar omdat je niet de onsubmit gebruikt kon dat ook nog wel eens niet gaan lukken.
Dit lukt idd niet omdat ik onsubmit gebruik.

Bestaat er een mogelijkheid om wel onsubmit te gebruiken? Dit zou in princiepe mogelijk zijn maar hoe kan ik in mijn javascript dan te weten komen op welke submit er is gedrukt?

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
kokorico schreef op dinsdag 23 november 2004 @ 10:07:
[...]
...maar hoe kan ik in mijn javascript dan te weten komen op welke submit er is gedrukt?
Zet met je buttons een hidden field op de waarde van de button.
Vervolgens doe je myForm.submit();

Dus iets als:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
   function submitForm(strVal) {
     myForm.myHiddenField.value = strVal;
     myForm.submit();
   }

   function checkForm() {
     //blahblah
     //return true / false
   }

   <form name="myForm" method="post" action="bla" onsubmit="return checkForm();">
     <input type="Button" onclick="submitForm('A');" value="DoeietsA" >
     <input type="Button" onclick="submitForm('B');" value="DoeietsB">
   </form>

In grote lijnen (effe uit de losse pols).

Je kan natuurlijk ook gewoon meteen checkForm() vanuit je knop aanroepen met een parameter en daar dan de myForm.submit() in vlammen als het form ok is ofzo...

[ Voor 20% gewijzigd door RobIII op 23-11-2004 11:28 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 14:55

crisp

Devver

Pixelated

Nee, bedenk dat bij een JS submit de onsubmit handler niet wordt uitgevoerd. Normaal gesproken is dit de meest praktische oplossing:
HTML:
1
2
3
4
5
<form action="#" method="post" onsubmit="return checkForm(this)">
  <input type="hidden" name="myHiddenField" />
  <input type="submit" value="submit A" onclick="this.form.elements['myHiddenField'].value='A'" />
  <input type="submit" value="submit B" onclick="this.form.elements['myHiddenField'].value='B'" />
</form>

Intentionally left blank

Pagina: 1