Avatar billede morten_linder Praktikant
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?
Avatar billede roenving Novice
21. juli 2003 - 11:47 #1
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 !-)
Avatar billede grunken Nybegynder
21. juli 2003 - 12:14 #2
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>
Avatar billede morten_linder Praktikant
21. juli 2003 - 12:36 #3
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 :(
Avatar billede roenving Novice
21. juli 2003 - 12:45 #4
onchange køres _kun_ hvis feltets værdi ændres via bruger-interface direkte i feltet (skrivning med keyboard eller marker/paste ...
Avatar billede morten_linder Praktikant
21. juli 2003 - 12:46 #5
kan man ikke gøre det på anden facon så?
Avatar billede roenving Novice
21. juli 2003 - 12:46 #6
-- 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()){
Avatar billede morten_linder Praktikant
21. juli 2003 - 12:46 #7
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?
Avatar billede roenving Novice
21. juli 2003 - 12:48 #8
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 !-)
Avatar billede morten_linder Praktikant
21. juli 2003 - 12:55 #9
den ændrer stadig ikke billedet :(
Avatar billede morten_linder Praktikant
21. juli 2003 - 12:55 #10
har ændret det nu...
Avatar billede grunken Nybegynder
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>
Avatar billede roenving Novice
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>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester