[JAVASCRIPT] Onclick -> SELECTED value veranderen van LIST

Pagina: 1
Acties:

  • klaaz
  • Registratie: April 2000
  • Laatst online: 24-04 16:54

klaaz

it's me!

Topicstarter
Ik heb een onclick event waarmee een aantal waarden vanuit een overzicht in een stelletje INPUT velden wordt gekopieerd. Deze kunnen dan vervolgens veranderd worden en als gewijzigde of nieuwe regel in de database worden toegevoegd:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<!-- even eenvoudig weergegeven: -->

OnClick="document.forma.id.value='2'; 
               document.forma.productname.value='blik'; 
               document.forma.ordernr.value='23'; 
               document.forma.description.value='blikken blik';
               document.forma.application.value='inpakproduct';
               document.forma.o_image.value='plaatje1.jpg';"

<input  name="id" type="text" />
<input  name="productname" type="text" />
<input  name="ordernr" type="text" />
<input  name="description" type="text" />
<input  name="application" type="text" />

<select  name="o_image" size="1">
   <option value="" selected></option>
   <option value="plaatje1.jpg">plaatje1.jpg</option> 
   <option value="plaatje2.jpg">plaatje2.jpg</option>
   <option value="plaatje3.jpg">plaatje3.jpg</option>
   <option value="plaatje4.jpg">plaatje4.jpg</option>
</select>


De normale input's worden netjes gevuld met de waarde uit het OnClick event. De list echter niet. Het lukt mij niet om de Option Selected waarde te vervangen door de waarde uit de regel. Zoeken heeft ook weinig opgeleverd. Iemand een idee?

[ Voor 43% gewijzigd door klaaz op 03-07-2004 11:30 ]


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:46

crisp

Devver

Pixelated

JavaScript:
1
document.forms['forma'].elements['o_image'].selectedIndex = 1;

Intentionally left blank


Verwijderd

Je moet de selectedIndex waarde wijzigen.

Een functie die ongeveer doet wat je wilt:

JavaScript:
1
2
3
4
5
6
7
8
function setSelectValue(value, selectElement) {
   for (var i = 0; i < selectElement.options.length; i++) {
      if (selectElement.options[i].value == value) {
         return selectElement.selectedIndex = i;
      }
   }
   return selectElement.selectedIndex = -1;
}

Nu kun je met
JavaScript:
1
setSelectValue('plaatje3.jpg', document.forms['forma'].elements['o_image'])

de waarde van de select veranderen.

Doe jezelf trouwens een lol, en bedenk voortaan betere namen dan forma voor een formulier. Als je het snel leest, dan lees je forms wat je daar zou verwachten, en dat is niet handig.
Gebruik ook de 'lange' vorm om elementen te benaderen. Wat ik precies bedoel kun je hier lezen.

Kijk voortaan ook even in een javascript reference, daarin staat hele nuttige informatie over eigenschappen en methoden van allerlei objecten.

[ Voor 8% gewijzigd door Verwijderd op 03-07-2004 11:47 ]


Verwijderd

de waarde (value) of de text van het element?

JavaScript:
1
2
document.forms['form'].elements['o_image'].options[i].value = 'lala';
document.forms['form'].elements['o_image'].options[i].firstCHild.nodeValue = 'lala';

[ Voor 21% gewijzigd door Verwijderd op 03-07-2004 11:46 ]


  • Cavorka
  • Registratie: April 2003
  • Laatst online: 27-03-2018

Cavorka

Internet Entrepreneur

Om een waarde uit je Option list te selecteren moet je met de indices van de lijst werken.

Dus dan moet je weten welke index bij plaatje1.jpg hoort en dan iets van (ben even de correcte syntax vergeten, maar om een idee te geven):
document.forma.o_image.selectedIndex = 1 doen.

Spuit 1011. :Y) Stomme Cheetah. :+

[ Voor 21% gewijzigd door Cavorka op 03-07-2004 11:49 ]

the-blueprints.com - The largest free blueprint collection on the internet: 50000+ drawings.


  • klaaz
  • Registratie: April 2000
  • Laatst online: 24-04 16:54

klaaz

it's me!

Topicstarter
Dit is me nu opeens geheel duidelijk! Weer een stukje JavaScript geleerd! Ik dacht al ergens in de index van de list te moeten zoeken maar het is erg lastig op een dergelijk probleem te zoeken.

Dit gaat wel lukken denk ik! (eerst even de deur uit, zal het vanmiddag aanpassen)

Dank jullie wel :)
Pagina: 1