Avatar billede johan.o Nybegynder
30. oktober 2005 - 14:17 Der er 9 kommentarer og
1 løsning

Function - hvad aktiverede ?

Eksempel :

<script>
function valider(f)
{
kodestykke her som fortæller hvilken input der har aktiveret funktionen
}
</script>

<form onsubmit='return valider(this)'>
<input type='image' id='save' src='...'>
<input type='image' id='del' src='...'>
</form>

Som skrevet står i funktionen. Hvilken metode kan jeg bruge for at finde ud af hvilken knap brugeren trykkede på.

Mvh. Johan
Avatar billede psykochicken Nybegynder
30. oktober 2005 - 16:35 #1
måske:
<script type="text/javascript">
function pop(elm){
    alert('Du har klikket på:  \"'+elm.id+'\" !');
}
window.onload = function(){
    var a = document.getElementsByTagName('input');
  for(i=0;i<a.length;i++){
    if(a[i].type == "image"){
      a[i].onclick = function(){pop(this);};
    }
  }
}
</script>
<form>
<input type='image' id='save' src='...'>
<input type='image' id='del' src='...'>
</form>

den fyres af før en evt. onsubmit.

/psc
Avatar billede johan.o Nybegynder
30. oktober 2005 - 19:19 #2
Vil dette ikke gøre det samme :

<input type='image' id='del' src='...' onclick='pop(this);'>

Jeg skal nok uddybe årsagen til mit spørgsmål. Der er forskel på hvorledes formen skal valideres alt efter hvilken knap der trykkes på. i den aktuelle form er der ca. 10 knapper med forskellige funktioner til forskellige dele af formen. Derfor er det nødvendigt i forbindelse med aktivering af valider() funkionen at jeg kan afgøre hvilken knap der har aktiveret scriptet.

Jeg kunne droppe onsubmit='return valider();' og istedet aktivere valider() med onclick events og så lave en document.form.min_form.submit(); hvis valideringen går godt, men er der ikke en mulighed for, ligesom i PHP, at registrere hvilken knap der har aktiveret afsendelsen ?

Mvh. Johan
Avatar billede roenving Novice
30. oktober 2005 - 22:02 #3
Ingen direkte såvidt jeg ved !-)

-- men du kan have en variabel, du sætter på de forskellige submit-knappers onclick, den vil så være sat før kaldet til valideringen:

<script type="text/javascript">
var actAction = 'normal';

function valider(f){
  switch(actAction){
    case 'normal':
      //der er ingen variabel sat
      break;
    case 'blaaFarve':
      //Der er trykket på den knap, der sætter blaaFarve ...
      break;
    default:
      //ingen af case-mulighederne er valgt
  }
}
</script>

<input type='image' id='del' src='...' onclick='actAction="blaaFarve";'>
Avatar billede johan.o Nybegynder
30. oktober 2005 - 23:36 #4
Hm, okay jeg ved at jeg bad om en løsning med onsubmit='return valider(this);' men jeg kom til at tænke på følgende løsning :

function valider(f, act) {
Når form er valideret sendes den med : f.submit(); }

<img src='but_save.jpg' onclick="valider(document.forms.oForm, 'save')">

Hvad er jeres vurdering af denne løsning ? Er der uhensigtsmæssigheder i forhold til onsubmit='return valider(f);' ?

Mvh. Johan
Avatar billede roenving Novice
30. oktober 2005 - 23:42 #5
Kun at den overordnet set er noget sværere at vedligeholde !-)

-- og vi er sandsynligvis ude i de små hjørner, men script-koden skal selvfølgelig opdateres for hver mulighed, du tilføjer, men hvis du f.eks. vælger et anelse anderledes navngivningsskema til f.eks. formen, skal alle knapper laves om !o]
Avatar billede johan.o Nybegynder
31. oktober 2005 - 00:06 #6
Arh, jeg kommer til at tænke på at med mit seneste forslag vil jeg istedet have problemet i den php fil formen sendes til, for den vil ikke kunne se hvad der har aktiveret afsendelsen.

Så jeg skal umiddlebart have en input funktion på billedet og så er jeg tilbage til din (roenving) løsning igen :)

Tak til psykochicken - Smid et svar roenving, jeg tror jeg har nok at arbejde med her.

Mvh. Johan
Avatar billede roenving Novice
31. oktober 2005 - 00:08 #7
Velbekomme '-)
Avatar billede johan.o Nybegynder
31. oktober 2005 - 00:16 #8
På den anden side kunne jeg også i valider funktionen lave :

f.act.value='act';

og så kører et check på den i php........good damn :) det er da svært når man skal til at vælge. Nå, der lukkes og slukkes :)
Avatar billede roenving Novice
31. oktober 2005 - 00:19 #9
Ja, der er mange overvejelser !-)

-- tak for point ;~]}
Avatar billede johan.o Nybegynder
31. oktober 2005 - 03:00 #10
Og lidt update på hvad valget faldt på :)

<input type='image' src='...' name='sbSave' onclick='act=this'>

og

onsubmit='return validate(this, act)'

'Det godt nok smart' :) når jeg selv skal sige det.

Mvh. Johan
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