01. november 2010 - 05:41 Der er 12 kommentarer og
1 løsning

Rulleliste - select ved dobbel klik

I en html rulleliste skal man foerst klikke paa et valget og derefter klikke paa en submit knap for at faa valget sendt videre i systemet.  Det ville vaere smartere hvis man kunne vaelge og submitte paa en gang, for eksempel ved et dobbel-klik paa den valgte option.  Kender nogen en metode dertil?

(Det er ingen kunst at definere doubleClick events i javascript, men jeg har specifikt brug for en der sender valget videre til behandling i naeste side.)
Avatar billede mcb2001 Nybegynder
01. november 2010 - 05:54 #1
du skal bruge noget javascript der fanger "dobbelt-klik" og så i funktionen køre form.submit();
Avatar billede majbom Novice
01. november 2010 - 07:07 #2
<select name="din_select" ondblclick="this.form.submit();"><option>vælg</option></select>
01. november 2010 - 07:40 #3
Tak for hurtigt svar.  Jeg har brugt tiden siden du sendte det til at proeve det af, men jeg har ikke faaet det til at virke.

For illustration, her er en kode:
<form action....>
<select>
<option value="green"  />
<option value="blue" />
</select>
</form>

Min event er ondblclick="submitForm()" der kalder en javascript funktion.  For foerst at afproeve ondblclick satte jeg i funktionen simpel hen document.write("SUBMIT FORM").  Saa proevede jeg at placere dobbeltklikken paa skift i <form>, i <select>, og i <option>.  Det viste sig at ondblclick ikke virker (eller jeg kunne ikke faa den til at virke) i <option/>.  Det er maaske logisk fordi det foerste klik paa en option vaelger den og sender den tilbage til select.  Derimod faar jeg ondblclick til at virke i <form> og i <select>, men det var ikke det jeg var ude efter.  Naar foerst man har valgt sin option kan man lige saa godt klikke paa en submit knap som dobbelklikke paa selecten.

Saa er det mig der er for fantasifuld, eller kan du (eller andre) taenke paa andre metoder til ud fra en rulleliste at vaelge en option direkte?
01. november 2010 - 07:41 #4
splazz, det var skrevet til mcb2001, jeg saa ikke dit indlaeg foer jeg submittede.  Jeg proever det lige af og kommer tilbage.
01. november 2010 - 08:40 #5
splazz, det faar jeg ikke til at virke.  Her er koden for formen med din kode indsat ($area bliver defineret tidligere paa siden.)  Der sker intet ved dobbelklik.  Har jeg misforstaaet noget?  Koden virker efter hensigt naar jeg trykker paa submit knappen, saa jeg tror ikke det kan vaere noget med syntaksfejl i selve formen.  (For oevrigt drejer det sig heller ikke her om dobbeltklik paa <option> som var det jeg var ude efter.)

echo "<form id='area' class='hidden' action='country.php' method='POST' >";
echo "<select name='area' ondblclick='this.form.submit();'>";
while($row = mysql_fetch_array($areas))
{
  $area = $row['name'];
  echo "<option value = $area >$area</option>";
}
echo "</select>";
echo "<input type='submit' name='submit' value='Chose Area' />";
echo "</form>";
Avatar billede majbom Novice
01. november 2010 - 09:06 #6
det ser heller ikke ud til at virke medmindre man sætter size til mere end 1 på select'en - det er jo osse svært at dobbeltklikke på en option, for den forsvinder jo efter det første klik :)
01. november 2010 - 09:32 #7
Det var det (med dobbelklik paa en option) jeg opdagede (kom i tanker om) og kommenterede om i #3.  Jeg var for fantasifuld. 

Det som alligevel irriterer mig er at man foerst skal aabne rullelisten ved klik paa pilen, saa klikke paa en option, og saa klikke paa noget andet, normalt submit men muligvis dobbelklik paa selecten.  Maaske skulle jeg eksperimentere med en liste i stedet for en rulleliste.  I den applikation jeg arbejder med bliver listerne ikke saa lange at rulleliste er absolut noedvendig.
Avatar billede majbom Novice
01. november 2010 - 09:44 #8
så kunne du jo netop sætte size-attributen, så det bliver en liste :)
01. november 2010 - 12:52 #9
Jeg har ikke saa meget held (eller talent?) idag.

Jeg var ikke klar over at i html laves en listbox med samme kode som en rulleliste bortset fra attributen size.  Det er jeg nu, og jeg har nu lavet en rulleliste om til en listbox og nu kan jeg dobbeltklikke paa de enkelte options.

Det er stadigvaek paa <select>, ikke paa <option> at dblclick eventen skal sidde.  Men jeg kan stadig ikke submitte formen.

Jeg har proevet med din kode der ikke kalder en funktion:

<select ondblclick='this.form.submit();' size=$areacount name='area'>

og jeg har proevet at lave en javascript funktion som jeg kalder:

function submitForm()
{
  document.writeln("SUBMIT FORM")
  //document.forms["area"].submit();
  //document.area.submit()
}
<select ondblclick='submitForm();' size=$areacount name='area'>

Som funktionen staar nu skriver den SUBMIT FORM ved dobbelklik.  Det beviser at funktionen kaldes og svarer.  Men baade naar anden og tredje linie er aktiv faar jeg en gul trekant naar jeg dobbelklikker, og der sker ingenting.  (Formen har baade id og navn som 'area'.

Splazz (eller andre), nogen ide om hvad der gaar galt?
Avatar billede majbom Novice
01. november 2010 - 13:24 #10
du kan se min lille test her: http://majbom.com/testarea/exp/922826/
01. november 2010 - 16:35 #11
Nu kan jeg ogsaa lave det.  Og det irriterende er at jeg ikke rigtig ved hvad der er forandret.  Jeg troede det maaske kunne vaere fordi jeg stadig havde en submitknap, saa jeg fjernede den.  Og taenk, saa virkede det!  Foer jeg konkluderede og fortalte hele verden at det var problemet indsatte jeg submitknappen igen, men det virkede stadig.

Men hvordan nu alting er, du har givet mig loesningen paa mit probolem.  Laeg venligst et svar saa jeg kan kvittere med points.

Og saa maa jeg i gang med det at sende min indkoebskurv som email.  Puha.  Hvis jeg finder ud af det ogsaa saa har det vaeret en god dag.
Avatar billede majbom Novice
02. november 2010 - 20:00 #12
hehe det ender med at det hele kommer til at spille til sidst ;)
Avatar billede majbom Novice
03. november 2010 - 09:18 #13
tfp :)
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