webForumDet fria alternativet

Uppdatera listbox

JavaScript

15 svar · 323 visningar · startad av Liam

Medlem sedan aug. 200340 inlägg
Frågan#1

Jag har följande fält

<select size="1" name="kundnummer">
<option>1929322</option>
<option>2002020</option>
</select>

<select size="1" name="foretagsnamn">
<option value="1929322">FÖRETAGET A</option>
<option value="2002020">FÖRETAGET B</option>
</select>

När man väljer ett kundnummer i "kundnummer" så ska det fält i "foretagsnamn" som har samma value markeras.

Hur gör man detta?

Helst utan att sidan behöver uppdateras.

Medlem sedan feb. 2003774 inlägg
#2

Ha en onChange på första som anropar ett script där du tar det selekterade värdet/texten (med hjälp av options collection) för att sedan loopa igenom den andra dropdown:en och matcha dess value. När du finner denna sätter du dess selected till true.

Medlem sedan nov. 20017 144 inlägg
#3

Om du sätter dem i ordning så kan du kanske göra så här:

<form name="ett">
<select size="1" name="kundnummer" onChange="document.forms['ett'].elements['foretagsnamn'].selectedIndex=this.selectedIndex;"> 
<option>1</option>
<option>2</option>  
<option>3</option> 
<option>4</option> 
</select> 

<select size="1" name="foretagsnamn"> 
<option value="1">FÖRETAGET A</option> 
<option value="2">FÖRETAGET B</option> 
<option value="3">FÖRETAGET C</option> 
<option value="4">FÖRETAGET D</option> 
</select> 

</form>
Medlem sedan aug. 200340 inlägg
#4

Tack Jesper! Det fungerade kanonbra!

Nu kom jag på en ny kul grej dock. Kan man bygga om denna till en liten sök. Dvs. Jag skriver ett nummer i

<input type="text" name="sok" size="20">

sen söker den i

<select size="1" name="foretagsnamn">
<option value="30">FÖRETAGET A</option>
<option value="26">FÖRETAGET B</option>
<option value="90">FÖRETAGET C</option>
<option value="205">FÖRETAGET D</option>
</select></form>

och markerar den som matchar bäst.

Dvs. Skriver jag 2 så markeras FÖRETAG B, men skriver jag 20 så markeras FÖRETAG D

Helst utan att sidan laddas om.

Medlem sedan juni 20004 308 inlägg
#5

Ungefär så här? (Du får den enkelt att sökta på value istället för text genom att ändra lista[n].text till lista[n].value).

Medlem sedan aug. 200340 inlägg
#6

Tack, kanonschysst!

Medlem sedan aug. 200340 inlägg
#7

Hej

Jag har gjort lite modifieringar och nu fungerar det tyvärr inte.

<select name="companynumber" onChange="document.forms['form'].elements['companyname'].selectedIndex=this.selectedIndex;"> >
<option value='1'>1</option><option value='2'>2</option><option value='3'>3</option>
</select>

<select name="companyname" class="field" onChange="document.forms['form'].elements['companynumber'].selectedIndex=this.selectedIndex;">
<option value='1'>Nisse AB</option><option value='2'>Sven AB</option><option value='3'>Åke AB</option>
</select>

Dvs. De två fälten ska vara synkade. Väljer man t.ex. Nisse AB så se den att det är value 1 som gäller och söker upp i companynumber där value=1

jag antar att typ selectedIndex ska ändras till selectValue eller?

Kan nån hjälpa mig?

Tack på förhand!

Medlem sedan nov. 20017 144 inlägg
#8

För mig så funkar det prima med den bifogade koden. Vad felar?

Medlem sedan aug. 200340 inlägg
#9

ok, jag förenklade koden lite.. egentligen är sifferfälten org.nummer som ser ut som följer XXXXXX-XXXX

hos mig väljer den fel. Jag har ingen aning om varför.

Medlem sedan nov. 20017 144 inlägg
#10

Bifoga orginalkoden då.

Medlem sedan aug. 200340 inlägg
#11

nu har jag hittat problemet. om man byter plats på t.ex. 2 och 3 i koden så fungerar det ej...

<form name="form">

<select name="companynumber" onChange="document.forms['form'].elements['companyname'].selectedIndex=this.selectedIndex;">

<option value='1'>1</option><option value='3'>3</option> <option value='2'>2</option>
</select>

<select name="companyname" class="field" onChange="document.forms['form'].elements['companynumber'].selectedIndex=this.selectedIndex;">
<option value='1'>Nisse AB</option><option value='2'>Sven AB</option><option value='3'>Åke AB</option>
</select>

</form>

Medlem sedan nov. 20017 144 inlägg
#12

Precis, det förutsätter att companyname och companynumber är rätt sorterade ifrån början.
Och då kanske det är smartare att hitta en annan lösning om det skall bli lätt att sortera på både nummer och namn?

Medlem sedan aug. 200340 inlägg
#13

går det att lösa?

Medlem sedan aug. 200340 inlägg
#14

ok, jag ska se om jag kan komma på en annan lösning. synd att inte denna fungerade

Medlem sedan aug. 200340 inlägg
#15

Jag använde jojoxx lösning. Tackar ändå så jättemycket för hjälpen!

Medlem sedan aug. 200340 inlägg
#16

Jojoxx lösning ballar ur om man har ganska många options i selectboxen...

Någon som kan komma på en smidig lösning och som är snabb även med många poster?

260 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)