Jag har slagit min hjärna ihop med några inlägg på WF och fått ihop denna funktion för att ändra bakgrundsfärg och border på ett textfält vid klick i en radiobutton:
function en_dis(rgb,tf){
form.mangd.style.background = rgb;
if (rgb != ""){ rgb = '2px dashed ' +rgb} else{ rgb="2px solid";}
form.mangd.style.border = rgb;
form.mangd.disabled = tf;
}
kallas via OnClick="en_dis('#eeeeee',true)
Min fråga är:
Hur får jag en korrekt återställning av '2px solid' till det det var från början? Nu har jag endast gissat ovanstående, vilket är fel, bordern är inte solid.
Att sätta rgb="" går inte heller, för då blir det ingen border alls.
Nja, en ska inte tolkas som en, det ska tolkas som en :L
(Om det var det du blev lurad av?)
Men, det löser inte hela mitt problem ändå, för det är biten med 'solid 2px' som jag inte vill ha, där ska stå 'default', dvs jag vet ju inte hur användaren har ställt in sin webbläsare, vilket färgschema de har tex. Då kan jag inte skriva en 'solid 2px'-linje runt, jag vill återställa den linje som jag skrev över med 'dashed 2px'.
Är du/ni med?
En undran till:
Vad skiljer din kod från min, förutom att du kodar mycket rättare än mig? För mig verkar det som att det fungerar likadant?
Background, border och disabled fungerar som hos mig, i alla fall i IE?
Istället för att skriva över egenskaper för objektet (text-fältet) så kan du tilldela det en klass. Sedan anger du egenskaperna för klassen istället. När du sedan plockar bort klasstillhörigheten får det tillbaks sitt ursprungliga utseende.
Ett lite annat sätta att tänka på bara. Jag skickar med 2 parametrar till funktionen. Dels vilket objekt som skall påverkas, dels ett värde (true/false) som styr ifall objeket skall påverkas på ena eller andra sättet.