21. juli 2003 - 10:07
Der er
12 kommentarer
Ændre billede baseret på indhold i form
Hej så er jeg her igen. jeg vil gerne ændre billede på basis af hvad værdien er i et form felt. hvis datoen i form-feltet <> i dag vises billede 1 hvis datoen i form-feltet == i dag vises billede 2 jeg bruger formatet yyyy-mm-dd til dato. og det skal selvfølgelig virke med OnChange på det felt man knaster dato ind i. anyone?
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
function checkPic(fld,picName){ nu = new Date(); aar = fld.value.substring(0,4); maa = fld.value.substring(5,7); dag = fld.value.substring(7); if(nu.getFullYear()==aar&&nu.getMonth()==maa&&dag==nu.getDate()){ document.getElementById(picName).src="idag.gif"; }else document.getElementById(picName).src="ikkeIdag.gif"; } } Den kalder du så: <input type="text" value="aaaa-mm-dd" onchange="checkPic(this,'idagPic');"> <img id="idagPic" src="ikkeIdag.gif" alt="Datoen er ikke idag!"> -- du skal være opmærksom på at onchange ikke udløses hvis du udfylder feltet med script, men du kan sagtens kalde funktionen fra et andet script ... -- (eller endnu bedre sætte det ind i !-)
Her er mit forsøg så :) <script language="javascript" type="text/javascript"> var e=new Date(); var m,d,y; m=e.getMonth()+1; d=e.getDate(); y=e.getYear(); m = (m < 10) ? "0"+m : m; d = (d < 10) ? "0"+d : d; e = y+"-"+m+"-"+d; function skift(f){ b=document.getElementById('billede') if (f.value==e) b.innerHTML = "<img src=\"billede1.jpg\">"; else b.innerHTML = "<img src=\"billede2.jpg\">"; } </script> <input type="text" onchange="skift(this);"> <div id="billede"></div>
Hej... jeg kan ikke rigtig få det til at spille :( pr. default er datoen i feltet sat til i dag, og den viser ikke i dag :(
onchange køres _kun_ hvis feltets værdi ændres via bruger-interface direkte i feltet (skrivning med keyboard eller marker/paste ...
kan man ikke gøre det på anden facon så?
-- og grunken har fat i en pointe jeg overså i farten, så hvis min skal bruges skal den rettes til: if(nu.getFullYear()==aar&&(nu.getMonth()+1)==maa&&dag==nu.getDate()){
men den skal jo vise billedet for i dag. og det gør den heller ikke. jeg laver jo mine html sider med php, så jeg kan vel bare lave en var = <? echo "$timestamp"; ?> i stedet for at regne mig frem til det?
Det er ikke det som er forskellen -- du skal udløse, at checket bliver kørt ... Men hvis du har en default, som er idag, sætter du også billedet til at vise idag ved start !-)
den ændrer stadig ikke billedet :(
21. juli 2003 - 12:55
#10
har ændret det nu...
21. juli 2003 - 13:20
#11
har du fundet ud af det ? hvis man tager mit eks. så er det jo bare at sætte både dato og billede til default :) (roenving var vist inde på det før;)) <input type="text" onchange="skift(this);" value="<? echo "$timestamp";?>> <div id="billede"><img src=\"billede1.jpg\"></div>
21. juli 2003 - 14:30
#12
Bare et eksempel (jeg har brugt noget af grunkens indgangsvinkel, da jeg ikke havde nogle billeder, som gav mening ,-) <script language="javascript" type="text/javascript"> function checkPic(fld,picName){ nu = new Date(); aar = fld.value.substring(0,4); maa = fld.value.substring(5,7); dag = fld.value.substring(8); if(nu.getFullYear()==aar&&(nu.getMonth()+1)==maa&&dag==nu.getDate()){ // document.getElementById(picName).src="idag.gif"; document.getElementById(picName).innerHTML="idag.gif"; }else{ // document.getElementById(picName).src="ikkeIdag.gif"; document.getElementById(picName).innerHTML="ikkeIdag.gif"; } } </script> Den kalder du så: <input type="text" value="aaaa-mm-dd" onchange="checkPic(this,'billede');"> <div id='billede'></div>
Vi tilbyder markedets bedste kurser inden for webudvikling