webForumDet fria alternativet

"Titel" och värde i en combobox

18 svar · 321 visningar · startad av Kim

KimMedlem sedan jan. 20007 697 inlägg
#1

Jag har en databastabell med ett antal olika avdelningar på en sida. Alla dessa avdelningar har ett id som används för att dirigera besökaren rätt, det finns alltså ett id och ett namn. Nu ska jag ha dessa i ett länkverktyg. Därför kommer det se ut ungefär så här:

<select name="selectbox">
<option value="1">Startsida
<option value="2">Bandyklubben
<option value="3">Fotbollsklubben
<option value="4">Handbollsklubben
</select>

Om jag nu ska hämta ta dessa värden med javascript så får jag ju bara fram värdet, d.v.s. id-numret (1,2,3...osv), men hur gör jag om jag skulle vilja ha även namnet, så att Startsida, Bandyklubben, Fotbollsklubben och Handbollsklubben också kommer med? Går det att göra överhuvudtaget?

JojoxxMedlem sedan juni 20004 308 inlägg
#2

Om vi tänker oss att obj är objekt-referensen för select-listan (document.formulärsnamn.selectbox) så hittar du värdena med obj[indexnummer].value och texten med obj[indexnummer].text

------------------
/ J

KimMedlem sedan jan. 20007 697 inlägg
#3

Tack så mycket! :D

En liten följdfråga, eftersom detta rör sig lite om sidor och undersidor, så ligger det - och   framför den text som tas fram med obj[indexnummer].text. Hur får man bort såna tecken med javascript?

KimMedlem sedan jan. 20007 697 inlägg
#4

Tackar! :D

JojoxxMedlem sedan juni 20004 308 inlägg
#5

Exempel;

obj[0].text.replace(/(^\-)&#0124;(^\&nbsp\;)/,"");

- returnerar texten från selectlistans index 0 och plockar bort - och   i början. Sen är det bara att loopa.

------------------
/ J

KimMedlem sedan jan. 20007 697 inlägg
#6

Hur kan jag läsa ditt inlägg, skriva ett svar och sen få det att hamna före ditt? ;)

Jaja, det fungerar inte riktigt. Det är så att jag i comboboxen behöver alla streck och mellanslag, men när jag sen ska skriva ut det så vill ja inte ha dem. Jag har alltså en strängvariabel innehållandes t.ex. - Nyheter, hur gör jag för att ta bort strecket och det inledande mellanslaget?

--- Red ---
Ursäkta för intrånget i ditt inlägg. Jag råkade klicka på fel knapp :/

[Redigerat av Jojoxx den 17 jan 2002]

JojoxxMedlem sedan juni 20004 308 inlägg
#7

Hur kan jag läsa ditt inlägg, skriva ett svar och sen få det att hamna före ditt? ;)

För att man som moderator har möjligheten att radera ett inlägg och skriva ett nytt istället för att redigera. Ser lite snyggare ut när man skriver fel :)

Jaja, det fungerar inte riktigt. Det är så att jag i comboboxen behöver alla streck och mellanslag, men när jag sen ska skriva ut det så vill ja inte ha dem.

Exemplet ovan returnerar bara ett värde, det ändrar inte på orginalet. Det är lite med finessen. Skulle du (tvärtom) vilja ändra på orginalet får du göra det med en tilldelning;

obj[0].text=obj[0].text.replace...osv.

Jag har alltså en strängvariabel innehållandes t.ex. - Nyheter, hur gör jag för att ta bort strecket och det inledande mellanslaget?

Observera att   och " " (mellanslag) inte är samma sak. För att ta bort "- " från början av en sträng kan du använda;

string=string.replace(/^\-\s/,"");

För att ta bort "- " i början;

string=string.replace(/^\-\&nbsp\;/,"");

------------------
/ J

KimMedlem sedan jan. 20007 697 inlägg
#8

Problemet är att det inte alltid är ett bindestreck och inte alltid lika många  , ibland är det nämligen fyra stycken   och ibland åtta.
Du har inget färdigt exempel som fixar detta?

Tack förresten för att du orkar med mina problem.

JojoxxMedlem sedan juni 20004 308 inlägg
#9

This should do the trick.

string=string.replace(/(^\-((\&nbsp\;)*))&#0124;(^(\&nbsp\;)+)/,"");

------------------
/ J

KimMedlem sedan jan. 20007 697 inlägg
#10

Nope, it didn't do the trick.

Den plockar bort bindestreck, men inte några   alls. :(

JojoxxMedlem sedan juni 20004 308 inlägg
#11

Yes, it does too ;)

// Test 1
string="-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;En sträng";
string=string.replace(/(^\-((\&nbsp\;)*))&#0124;(^(\&nbsp\;)+)/,"");
alert(string);

// Test 2
string="&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;En sträng";
string=string.replace(/(^\-((\&nbsp\;)*))&#0124;(^(\&nbsp\;)+)/,"");
alert(string);

Klistra in och testa. Det är inte så att du blandar ihop   och " "?

------------------
/ J

KimMedlem sedan jan. 20007 697 inlägg
#12

No, it doesn't. ;)

Så här ser select-koden ut.

<select name="internLink" size="1" onFocus="document.insertLink.link[1].checked = true">
<option value=0>Huvudnivå
<option value=2>NYHETSARKIV
<option value=997>    Provar igen
<option value=981>    Testnyhet
<option value=1011>    Testnyhet
<option value=1012>    Urban testar
<option value=998>    medlemsnyhet
<option value=987>    Test2
<option value=980>Provar modulen
<option value=985>”Vi har en hel del lite udda jobb”
<option value=971>Kontakt
<option value=969>MEDLEMMAR
<option value=983>Målet är att bli certifierad projektledare
<option value=982>Nu är även RM kvalitetssäkrat
<option value=984>Nyföretagarlånet gjorde förvärvet möjligt
<option value=201>Sök
</select>

Testa gärna med den så ska du få se att det inte alls fungerar. ;)

/R: De mellanslag du ser precis efter option-taggen är alltså  
Det fungerar inte...

[Redigerat av Kim den 18 jan 2002]

JojoxxMedlem sedan juni 20004 308 inlägg
#13

Fungerar det om du använder;

string.replace(/(^\-((\s)*))|(^(\s)+)/,"");

------------------
/ J

KimMedlem sedan jan. 20007 697 inlägg
#14

Nej du, det gör inte det. Men tack ändå, du behöver inte lägga ner mer tid på det här, du har hjälpt mig tillräckligt ändå. :D

Tack så mycket, det får vara så här över helgen i alla fall. :)

JojoxxMedlem sedan juni 20004 308 inlägg
#15

Jag är fortfarande inte riktigt överens med regexpet, men det duger;

string=string.replace(/(&nbsp;)&#0124;(^\-)/g,"");

------------------
/ J

KimMedlem sedan jan. 20007 697 inlägg
#16

Jag är ledsen att behöva säga det här, men det fungerar fortfarande inte. ;)

JojoxxMedlem sedan juni 20004 308 inlägg
#17

Spännande. Det verkar som detta skiljer mellan olika webbläsare. Vi gör en ny approach;

string=string.match(/(\w.+)/); string=RegExp.$1;

------------------
/ J

KimMedlem sedan jan. 20007 697 inlägg
#18

Näe, det alla som du har skrivit (utom det sista) klarar av att ta bort bindestreck, men inte   .

Jag fattar inte. :OO

JojoxxMedlem sedan juni 20004 308 inlägg
#19

Iofs ser jag att jag tilldelningen string=string.match är onödig utan det räcker med att köra regexpet, men det spelar ingen roll. Ovanstående har jag testat i Netscape 4.07, Mozilla, IE5.01 och IE5.5 och det fungerar. Jag har även lagt upp ett test här. Markera ett val i listan och klicka på knappen. Hakparenteserna är bara med i alert-rutan för att du skall se e.v. mellanslag. Testa gärna och titta i källkoden så ser du att - och   används. Vad testar du med för webbläsare?

------------------
/ J

134 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)