[JavaScript] Functies werken niet samen

Pagina: 1
Acties:

  • TweakersOnly
  • Registratie: September 2000
  • Laatst online: 22:09
Binnen mijn asp pagina heb ik twee JavaScript functies: Een RefreshForm en ControleerKeuze. Op de pagina staat een combobox met klantnummers en een tabel waarin de klantgegevens van de huidige klant worden weergegeven. Onder de tabel staat een button "Verwijderen".
De Javascript functie zien er als volgt uit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
[script language="JavaScipt"]
funtion RefreshForm(form) {
var I = form.combobox.itemindex;
self.location.href="Verwijderen.asp?Klantnr=" + form.combobox.options[I].value;
}
<!--
function ControleerKeuze(form) {
if (mtConfirmation("Wilt U de klant verwijderen"))
form.frmVerwijderen.submit();
}
-->
[/script]

Excusez-moi als de code niet helemaal juist is, ik heb de broncode niet voor me.

Nadere uitleg:

Als een ander klantnummer uit de combobox wordt gekozen, dan wordt via het onChange-event van de combobox de RefreshForm-functie aangeroepen. Deze functie refresht de pagina en geeft als een QueryString het klantnummer weer.

Als op de knop Verwijderen wordt gedrukt, dan wordt de functie ControleerKeuze() aangeroepen die een messagebox met twee knoppen "OK" en "Annuleren" genereert waarop de gebruiker bevestigend dient te beantwoorden.

Probleem is, dat wanneer de gebruiker op "Annuleren" drukt, het huidige record toch wordt verwijderd, het form wordt toch gesubmit.

De beide JavaScript functies werken afzonderlijk wel naar behoren, alleen als ze samen in een asp-bestand worden gebruikt, krijg ik het probleem met het drukken op de "Annuleren"-knop.

Weet iemand wat ik verkeerd doe?

  • TweakersOnly
  • Registratie: September 2000
  • Laatst online: 22:09
Ik heb ff de juiste code opgezocht:
code:
1
2
3
4
5
6
7
8
9
10
11
12
<script language="Javascript">
   function RefreshForm (form) {
    var I = form.Sleutel.selectedIndex;
    self.location.href="frmDelete.asp?KlantID=" + form.Sleutel.options[I].value;
   }
   <!--
   function ControleerKeuze(){
    if (confirm("Weet u zeker dat u de klant wilt verwijderen?"))  
    document.frmUser_delete.submit();
   }
   -->          
</script>

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Laat anders ook eens een stukje van het form zien. Ik vermoed dat daar de oorzaak zit.

Intentionally left blank


  • TweakersOnly
  • Registratie: September 2000
  • Laatst online: 22:09
De complete head van het asp-bestand ziet er als volgt uit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<head>
   <title>Verwijderen klant</title>
   <script language="Javascript">
    function RefreshForm (form) {
       var I = form.Sleutel.selectedIndex;
       self.location.href="frmDelete.asp?KlantID=" + form.Sleutel.options[I].value;
    }
    <!--
    function ControleerKeuze(){
       if (confirm("Weet u zeker dat u de klant wilt verwijderen?"))  
       document.frmDelete.submit();
    }
    -->         
   </script>        
</head>

In onderstaande code wordt de RefreshForm-functie aangeroepen:
code:
1
<select size="1" name="Sleutel" onChange="RefreshForm(document.forms[0]);">

In onderstaande code wordt de messagebox gegenereerd:
code:
1
<input type="submit" value="Verwijderen" name="Verwijderen" onClick="ControleerKeuze();">

  • TweakersOnly
  • Registratie: September 2000
  • Laatst online: 22:09
niemand?

  • André
  • Registratie: Maart 2002
  • Laatst online: 09-09 14:17

André

Analytics dude

Je moet de functie Controleerkeuze() in je form zetten. bv:
code:
1
<form name="formulier" action="bestand.htm" method="post" onsubmit="return Controleerkeuze()">

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Of:
code:
1
2
3
4
5
function ControleerKeuze(){
    if (!confirm("Weet u zeker dat u de klant wilt verwijderen?")) {  
      return false;
    }
   }


code:
1
<input type="submit" value="Verwijderen" name="Verwijderen" onClick="return ControleerKeuze();">

of:
code:
1
2
3
4
5
function ControleerKeuze(){
    if (confirm("Weet u zeker dat u de klant wilt verwijderen?")) {  
      document.frmUser_delete.submit();
    }
   }


code:
1
<input type="button" value="Verwijderen" name="Verwijderen" onClick="ControleerKeuze();">

Oftewel: je submit je form via javascript, of via de action in je form met een submit button.

Intentionally left blank


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

De meeste mensen zitten hier niet snachts ;) Maar overdag tijdens hun werk...

crisp heb oplossing al gegeven zie ik..

Maar gebruik voortaan geen "form" meer als variabelenaam.. Het form-object is namelijk een bestaand object en kan verwarrnig of zelfs conflicten veroorzaken.
Pagina: 1