Just nu i M3-nätverket
Jump to content

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


jonny1

Recommended Posts

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

 

 

 

Link to comment
Share on other sites

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]

Link to comment
Share on other sites

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]

Link to comment
Share on other sites

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

 

 

Link to comment
Share on other sites

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Å]>

 

Link to comment
Share on other sites

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?

 

Link to comment
Share on other sites

=)

 

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

 

Link to comment
Share on other sites

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Å] >

 

Link to comment
Share on other sites

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>

 

Link to comment
Share on other sites

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)

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...