[JavaScript] Confirm met 3 knoppen

Pagina: 1
Acties:
  • 1.549 views sinds 30-01-2008
  • Reageer

  • avdwerf
  • Registratie: Maart 2007
  • Laatst online: 01-12 20:33
Ik heb een javascript confirm box nodig voor een cms. Als er op "bedrijf verwijderen" geklikt worden moet er een javascript popupje komen met de vraag of relaties die bij het bedrijf horen ook verwijdert moeten worden. Je moet dan kunnen kiezen uit "Ja","Nee","Annuleren", zodat de verwijderactie helemaal geannuleerd kan worden en dat de gebruiker kan kiezen om de relaties mee te verwijderen of die te behouden. Is hier een standaard javascript iets voor? Met confirm() krijg ik namelijk maar 2 knoppen, maar het moeten er dus echt 3 zijn...

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Wat heb je gezocht, wat heb je gevonden?
Hier bijvoorbeeld [google=javascript+yes+no+cancel] lees ik bij de eerste paar hits dat het onmogelijk is, je zult dus een andere oplossing moeten zoeken.

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 07:54

Janoz

Moderator Devschuur®

!litemod

Naast dat er in javascript niet een dergelijke dialog bestaat hoort javascript ook niet in PRG.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 20-11 11:59

NMe

Quia Ego Sic Dico.

Ten eerste bestaat het inderdaad niet en zal je dus zelf iets in elkaar moeten knutselen (of VBScript gebruiken, wat voor zover ik weet alleen in IE werkt) en ten tweede zit je hier verkeerd. Zie ook Waar hoort mijn topic? :)

PRG>>WEB

'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.


  • Martinspire
  • Registratie: Januari 2003
  • Laatst online: 23:37

Martinspire

Awesomeness

Wat is er eigenlijk (in jouw opzicht) het verschil tussen Nee en Annuleren? Aangezien je bij nee ook niet doorgaat?

Martinspire - PC, PS5, XSX


  • Helmet
  • Registratie: Januari 2002
  • Laatst online: 09-10 13:15
laat gewoon een formulier zien met 3 buttons/linkjes naar de verschillende acties die uitgevoerd moeten gaan worden, laat deze met javascript omhoog springen als iemand op verwijderen klikt

Icons are overrated


  • avdwerf
  • Registratie: Maart 2007
  • Laatst online: 01-12 20:33
djmantri schreef op maandag 16 april 2007 @ 13:15:
Wat is er eigenlijk (in jouw opzicht) het verschil tussen Nee en Annuleren? Aangezien je bij nee ook niet doorgaat?
excuses voor de foute post dan, maar nee en annuleren is niet hetzelfde. Bij annuleren verwijdert hij helemaal niks, en bij nee wordt het bedrijf wel verwijdert, maar de relaties die bij dat bedrijf horen niet... maar dit wordt gewoon zelf knutselen dan?

  • Martinspire
  • Registratie: Januari 2003
  • Laatst online: 23:37

Martinspire

Awesomeness

Maak er dan een radiobutton bij waarbij je dat laat bepalen?

Martinspire - PC, PS5, XSX


  • disjfa
  • Registratie: April 2001
  • Laatst online: 04-11 11:05

disjfa

be

avdwerf schreef op maandag 16 april 2007 @ 13:57:
[...]
excuses voor de foute post dan, maar nee en annuleren is niet hetzelfde. Bij annuleren verwijdert hij helemaal niks, en bij nee wordt het bedrijf wel verwijdert, maar de relaties die bij dat bedrijf horen niet... maar dit wordt gewoon zelf knutselen dan?
En wat doet "ja" dan?

disjfa - disj·fa (meneer)
disjfa.nl


  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

lees de startpost dan |:(

Ja: ook de relaties verwijderen
Nee: alleen het bedrijf verwijderen
Annuleren: niks doen

Net zoals dat in elke applicatie zo werkt, en dus niet met radio boxen gaan werken wat dat is gewoon onhandig. Je moet (helaas) zelf een popupje maken waarin je deze 3 knoppen zet.

  • RM-rf
  • Registratie: September 2000
  • Laatst online: 09:18

RM-rf

1 2 3 4 5 7 6 8 9

avdwerf schreef op maandag 16 april 2007 @ 13:06:
Ik heb een javascript confirm box nodig voor een cms. Als er op "bedrijf verwijderen" geklikt worden moet er een javascript popupje komen met de vraag of relaties die bij het bedrijf horen ook verwijdert moeten worden. Je moet dan kunnen kiezen uit "Ja","Nee","Annuleren", zodat de verwijderactie helemaal geannuleerd kan worden en dat de gebruiker kan kiezen om de relaties mee te verwijderen of die te behouden. Is hier een standaard javascript iets voor? Met confirm() krijg ik namelijk maar 2 knoppen, maar het moeten er dus echt 3 zijn...
om eerlijk te zijn, ben je niet bezig je gebruikers op te zadelen met een uiterst onhandige keuze die je applicatie voornamelijk slechter bruikbaar maakt?

zelfs de aloude 'ja', 'nee' confirm boxen zijn veeleer een schandvlek op usability, maar hooguit bruikbaar doordat ze zo eenvoudig zijn dat je meestal er weinig fout mee kunt doen, het is 'ja' om je voorheen gekozen actie door te voeren en nee om deze af te zeggen ..

uit usability-oogpunt zou het beter zijn om in de te kiezen actie de handling te specificeren (dus niet 'ja' of 'ok', maar 'bestand verwijderen', en het liefst ook nog de default handeling op de 'cancel' te kunnen zetten, en niet standaard op 'ok' zoals bij de javascript confirm)..
dat voorkomt dat mensen zich 'aanwennen' om standaard direkt op de 'ja' te klikken en de confirm niet meer is dan een ergenis die _eventjes ophoud; maar in geval van een vergissing men tóch te laat erachterkomt de foute handeling uitgevoerd te hebben (zeker als de gebruiker meermaals en op verschillende handelingen deze moet 'confirmen')

Het idee om twee verschillende handelingen, én nog een cancel te bieden; af te vangen met één standaard confirm is vragen om gebruikers die zich vergissen en de verkeerde knop drukken ...
Zelfs al zou daartoe ook een standaard technische mogelijkheid bestaan (die er dus bewust ook niet is, al zou ik MS eigenlijk wel voor aanzien, die zijn berucht om hun onhandige plaatsen van 'confirm's)

Ik kan je enkel aanraden om twee gescheiden buttons te maken in de interface en deze al duidelijk te scheiden, een ander uiterlijk te geven.

[ Voor 7% gewijzigd door RM-rf op 16-04-2007 14:24 ]

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen


  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

RM-rf schreef op maandag 16 april 2007 @ 14:20:
Het idee om twee verschillende handelingen, én nog een cancel te bieden; af te vangen met één standaard confirm is vragen om gebruikers die zich vergissen en de verkeerde knop drukken ...

Ik kan je enkel aanraden om twee gescheiden buttons te maken in de interface en deze al duidelijk te scheiden, een ander uiterlijk te geven.
Dat is imo juist onhandiger, nu heb je gewoon 1 verwijder actie met een vraag of je eventueel ook de relaties van dat te verwijderen item mee wilt verwijderen, wat doorgaands ook het geval is. Juist door extra knoppen in je interface te plaatsen krijg je onduidelijkheid.

Verder is dat niet altijd mogelijk, want als je de "DEL" knop van het toetsenbord afvangt, wat betekend die dan? ;)

  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

HTML:
1
<a href="delete.php?id=<?php print $id; ?>" onclick="return confirm('Bent u zeker dat u dit bericht wilt verwijderen'); return false;">Delete</a>


Geen geblaat oid. Yes = verwijder, No = niet verwijderen (== Annuleren)

[ Voor 19% gewijzigd door Snake op 16-04-2007 14:34 ]

Going for adventure, lots of sun and a convertible! | GMT-8


  • disjfa
  • Registratie: April 2001
  • Laatst online: 04-11 11:05

disjfa

be

Erkens schreef op maandag 16 april 2007 @ 14:24:
[...]
Dat is imo juist onhandiger, nu heb je gewoon 1 verwijder actie met een vraag of je eventueel ook de relaties van dat te verwijderen item mee wilt verwijderen, wat doorgaands ook het geval is. Juist door extra knoppen in je interface te plaatsen krijg je onduidelijkheid.
Kwa usability druk ik altijd op nee als ik iets niet zeker weet. Als dan ineens wel vanales verwijdert word zou ik het niet meer volgen als klant zijnde.

Het is een leuke oplossing om meerdere mogenlijkheden te hebben. Maar niet met een "ja/nee" scherm.

Wat je wel kan doen is een extra scherm als je dingen wilt verwijderen met zoals al eerder voorgesteld een berg radio knoppen met vragen als "verwijder alleen relatie", "verdwijder alles" met daaronder een ok en annuleer knop.

disjfa - disj·fa (meneer)
disjfa.nl


  • RM-rf
  • Registratie: September 2000
  • Laatst online: 09:18

RM-rf

1 2 3 4 5 7 6 8 9

Erkens schreef op maandag 16 april 2007 @ 14:24:
[...]

Dat is imo juist onhandiger, nu heb je gewoon 1 verwijder actie met een vraag of je eventueel ook de relaties van dat te verwijderen item mee wilt verwijderen, wat doorgaands ook het geval is. Juist door extra knoppen in je interface te plaatsen krijg je onduidelijkheid.
een 'verwijder' actie is meestal niet de plek die je wilt 'vereenvoudigen door veel verschillende acties te clusteren:
dus bv het verwijderen van enkel de relaties of het gehele record onder dezelfde knop zetten ...

Het kan erg leuk lijken (veel programmeurs denken al te graag aan 'tijdswinst' en het samenvoegen van acties), maar het is een recept voor vergissingen ... en helaas kennen veel webapplicaties dan geen 'undo'

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen


  • CH4OS
  • Registratie: April 2002
  • Niet online

CH4OS

It's a kind of magic

Je kan natuurlijk ook denken aan een dubbel dialoog venster.
De eerste, met daarin de vraag in de trant van 'Weet je zeker dat je $bedrijf wilt verwijderen?'
En de tweede vraag (als de eerste vraag ja is) of de relaties met $bedrijf (ook) verwijderd mogen worden... ;)
RM-rf schreef op maandag 16 april 2007 @ 14:28:
Het kan erg leuk lijken (veel programmeurs denken al te graag aan 'tijdswinst' en het samenvoegen van acties), maar het is een recept voor vergissingen ... en helaas kennen veel webapplicaties dan geen 'undo'.
Hoe wilde je dan een undo functie / structuur bouwen?

Zoiets behoor je eerder in een backup te zetten, dan dat je er een speciale functie / structuur voor schijft imo... ;)

  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 18-11 20:57
HTML:
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<script type="text/javascript">
function deleteBedrijf(id)
{
...
  document.getElementById('delBedrijfConfirm').style.display = "block";
  document.forms.delBedrijf.bid.value = id;
}

function delCancel()
{
  document.getElementById('delBedrijfConfirm').style.display = "none";
}
</script>
...
<style type="text/css">
div#delBedrijfConfirm
{
  position: absolute;
  left: 50%;
  top: 50%;
  
  width: 400px;
  height: 200px;
  
  margin-left: -200px;
  margin-top: -100px;
  
  padding: 5px;
}

div#delBedrijfConfirm form
{
  margin: 0;
  padding: 0;
}
div#delBedrijfConfirm form ul
{
  margin: 0;
  padding: 0;
  list-style-type: none;
}
div#delBedrijfConfirm form ul li
{
  padding-left: 10px;
}
</style>
...
<div id="delBedrijfConfirm" style="display: none;">
<form action="delete.php" name="delBedrijf">
<input type="hidden" name="bid" value="">
<p>Wat wilt u verwijderen?</p>
<ul>
<li><button type="submit" name="delwat" value="bedrijfEnRelaties">Het bedrijf en bijbehorende relaties</button></li>
<li><button type="submit" name="delwat" value="alleenBedrijf">Alleen het bedrijf</button></li>
<li><button type="button" onclick="delCancel();">Annuleren</button></li>
</ul>
</div>


delete.php:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
if( isset($_POST['delwat']) )
{
  // bedrijf en relaties verwijderen
  if( $_POST['delwat'] == "bedrijfEnRelaties")
  {
     // code
  }
  elseif( $_POST['delwat'] == "alleenBedrijf")
  {
    // code
  }
  else
  {
    die("ongeldige keuze");
  }
}



Zo zou je volgens mij een heel eind moeten komen... (ongeteste code, ik geef er geen garanties op, blablabla

We are shaping the future


  • avdwerf
  • Registratie: Maart 2007
  • Laatst online: 01-12 20:33
GJ-tje schreef op maandag 16 april 2007 @ 14:36:
Je kan natuurlijk ook denken aan een dubbel dialoog venster.
De eerste, met daarin de vraag in de trant van 'Weet je zeker dat je $bedrijf wilt verwijderen?'
En de tweede vraag (als de eerste vraag ja is) of de relaties met $bedrijf (ook) verwijderd mogen worden... ;)
Zoiets heb ik nu dus al, maar dit wilde ik gaan vereenvoudigen tot 1 dialoogje waar de gebruiker iets aan moet geven
GJ-tje schreef op maandag 16 april 2007 @ 14:36:
Hoe wilde je dan een undo functie / structuur bouwen?

Zoiets behoor je eerder in een backup te zetten, dan dat je er een speciale functie / structuur voor schijft imo... ;)
gewoon een veld in de database met gearchiveerd, en dan 0 of 1, zo blijft alles gewoon in de database staan en wordt er niks 'definitief' verwijderd
Alex) schreef op maandag 16 april 2007 @ 14:46:
Zo zou je volgens mij een heel eind moeten komen... (ongeteste code, ik geef er geen garanties op, blablabla
thnx ik zal er eens naar gaan kijken

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

RM-rf schreef op maandag 16 april 2007 @ 14:28:
een 'verwijder' actie is meestal niet de plek die je wilt 'vereenvoudigen door veel verschillende acties te clusteren:
dus bv het verwijderen van enkel de relaties of het gehele record onder dezelfde knop zetten ...
afaik ging het niet om alleen de relaties verwijderen ;)
Het kan erg leuk lijken (veel programmeurs denken al te graag aan 'tijdswinst' en het samenvoegen van acties), maar het is een recept voor vergissingen ... en helaas kennen veel webapplicaties dan geen 'undo'
Ik denk eerder aan gebruiksgemak en overeenkomst met desktop applicaties als ik met een webapp bezig ben.

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 07:54

Janoz

Moderator Devschuur®

!litemod

Erkens schreef op maandag 16 april 2007 @ 15:21:
Ik denk eerder aan gebruiksgemak en overeenkomst met desktop applicaties als ik met een webapp bezig ben.
Veel desktop applicaties zijn nu ook weer niet het toonbeeld van usability trouwens.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • CH4OS
  • Registratie: April 2002
  • Niet online

CH4OS

It's a kind of magic

avdwerf schreef op maandag 16 april 2007 @ 15:04:
Gewoon een veld in de database met gearchiveerd, en dan 0 of 1, zo blijft alles gewoon in de database staan en wordt er niks 'definitief' verwijderd.
Dat kan ook nog inderdaad, maar dan zit je weer met mutaties die plaatsvinden, omdat bijvoorbeeld de NAW-gegevens gewijzigt zijn, dan moet je die dingen ook bij houden... ;)

En dan kan je het beste mijns inziens met een koppeltabel gaan werken... :)
Waar je zelfs dat soort dingen bijhoudt en dus ook 'archief' kan zetten... :)
Pagina: 1