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 fra Kingston Technology
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