Just nu i M3-nätverket
Gå till innehåll

Byta färg på tabellrad med radio button??


jonny1

Rekommendera Poster

Hejsan, jag fick utmärkt hjälp utav mentor i dhtml - forumet med följande lösning ( //eforum.idg.se/viewmsg.asp?EntriesId=657423 ).

 

Nu skulle jag vilja använda samma lösning i en dynamisk meny med id'n som inte alltid kommer i nummerföljd. Någon som har en idé om hur man enklast löser detta.

 

Skriver frågan här då den nu kanske mer rör Asp än dhtml!?

 

Tack på förhand // Mvh

 

 

 

Länk till kommentar
Dela på andra webbplatser

Tar tillbaka mitt svar, tänkte inte på att id inte skulle komma i följd.

 

 

[inlägget ändrat 2004-12-28 00:09:01 av Mentor]

Länk till kommentar
Dela på andra webbplatser

Jag skrev om Mentors exempel på ett sätt som inte kräver några id i tabellraderna (förutom den som skall vara markerad först, id="First")

 

TILLÄGG: Kanske ska lägga med koden också :)

 

[log]

<html>
<head>
<title>Untitled</title>
<script language=[GRÅ]"JavaScript"[/GRÅ] type=[GRÅ]"text/JavaScript"[/GRÅ]>
var oColored;
[color="#0000ff"]Function[/color] check(oEl){
[color="#0000ff"]If[/color] (oColored)
	oColored.style.backgroundColor=[color="#006400"]'';[/color]
oEl.style.backgroundColor=[color="#006400"]'red';[/color]
oColored=oEl;
}
</script></head>

<body onload=[GRÅ]"check(document.getElementById('First'));"[/GRÅ]>
<table><tr [color="#0000ff"]Class[/color]=Markerad id=0>
<td>
<input type=radio value=0 name=menu checked=1 id=[GRÅ]"First"[/GRÅ] onClick=[GRÅ]"check(this)"[/GRÅ]>
</td>
</tr>

<tr [color="#0000ff"]Class[/color]=EjMarkerad id=1>
<td>
<input type=radio value=1 name=menu onClick=[GRÅ]"check(this)"[/GRÅ]>
</td>
</tr>

<tr [color="#0000ff"]Class[/color]=EjMarkerad id=2>
<td>
<input type=radio value=2 name=menu onClick=[GRÅ]"check(this)"[/GRÅ]>
</td>
</tr></table>
</body>
</html>

[/log]

[inlägget ändrat 2004-12-28 00:18:10 av Anjuna Moon]

Länk till kommentar
Dela på andra webbplatser

Hej igen & tack för svaret, jag har dock problem med att få koden ovan att fungera får scriptf-fel "objekt förväntas" när sidan laddas?

 

 

Mvh

 

 

Länk till kommentar
Dela på andra webbplatser

Har du verkligen lagt in koden som jag beskrivit då? Det fungerar bra för mig. Kontrollera att du lagt in ID="First" på den radioknapp som är förvald:

 

<input type=radio value=0 name=menu checked=1 id=[GRÅ]"First"[/GRÅ] onClick=[GRÅ]"check(this)"[/GRÅ]>

 

Länk till kommentar
Dela på andra webbplatser

ja jag har testat att ta hela din kod komplett och bara klistrat in i ett nytt html-dokument + dubbelkollat att id="First" på den första/förvalda radio-knappen & det fungerar inte för mig med xp + ie6?

 

Vad mer kan jag testa?

 

Länk till kommentar
Dela på andra webbplatser

=)

 

Länken fungerar utmärkt och efter att ha uppdaterat min kod med den från länken så fungerar det.

 

Dock så var tanken från början att bakgrunden i tabell-raden ska byta färg och inte radio-knappens bakrund, men det kanske är en baggis att ordna då det i övrigt fungerar som tänkt.

 

Hur som helst - jättetack än så länge, ska titta ordentligt på det här efter lunch - kanske återkommer om jag inte får till det med att byta till tabellradens färg.

 

Mvh

 

Länk till kommentar
Dela på andra webbplatser

Dock så var tanken från början att bakgrunden i tabell-raden ska byta färg och inte radio-knappens bakrund,

 

Enkelt fixat, ändra referensen this till this.parentNode:

onClick=[GRÅ]"check(this.parentNode)"[/GRÅ]

 

samt lägg ID="First" i tabellcellen som är förvald istället:

<td id=[GRÅ]"First"[/GRÅ] >

 

Länk till kommentar
Dela på andra webbplatser

:)

 

Du är en riktig klippa - Stort tack till dig och självklart högsta poäng!!

 

En en gång tack för hjälpen.

 

Mvh

 

Länk till kommentar
Dela på andra webbplatser

Hej igen Anjuna,

 

Skäms lite för att komma här igen o fråga, men jag har blivit så bortskämd med bra svar att jag försöker igen.

 

Jag har ett sista problem som kanske är enkelt det med men jag får inte till det. Har laggt till en ny kolumn och vill nu att hela tr ska lysa rött och inte bara cellen, harde nog trott att det skulle räcka med att byta <td id="First" > till <tr id="First" > men får det inte att funka...

 

<html>

<head>

<title>Untitled</title>

<script language="JavaScript" type="text/JavaScript">

var oColored;

function check(oEl)

{

if (oColored)

oColored.style.backgroundColor='';

oEl.style.backgroundColor='red';

oColored=oEl;

}

</script></head>

 

<body onload="check(document.getElementById('First'));">

 

<table width="160" border="1">

 

<tr id="First">

<td><input type=radio value=0 name=menu checked=1 onClick="check(this.parentNode)">

</td>

<td>test1</td>

</tr>

 

<tr>

<td> <input type=radio value=1 name=menu onClick="check(this.parentNode)">

</td>

<td>test2</td>

</tr>

 

<tr>

<td> <input type=radio value=2 name=menu onClick="check(this.parentNode)">

</td>

<td>test3</td>

</tr>

 

 

</table>

 

 

 

</body>

</html>

 

Länk till kommentar
Dela på andra webbplatser

Skäms lite för att komma här igen o fråga

Nänä, inga problem (fast det blir sista svaret för nu, ska lägga mig och sova nu, har suttit uppe och jobbat hela natten)

 

Till problemet: Utöver att lägga Id="First" i TR (som du redan gjort) ändrar du anropen till:

 

onClick="check(this.parentNode.parentNode)

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...