Avatar billede compac Seniormester
09. juni 2004 - 21:36 Der er 12 kommentarer og
1 løsning

Åbn javaskript-vindue ved klik på textbox

Hvor dan åbner jeg et javaskriptvindue ved klik på en tekstbox?
Som min kode ser ud nu skal man klikke på en ikon, men jeg vil også have mulighed for at åbne ved klik på tekstboxen.

<form name=calform>
<input type=text name="datebox" size=15><a href="java script:show_calendar('calform.datebox');" onmouseover="window.status='Date';return true;" onmouseout="window.status='';return true;"><img src="show-calendar.gif" width=24 height=22 border=0></a>
</form>
Avatar billede thesurfer Nybegynder
09. juni 2004 - 21:40 #1
<input type=text name="datebox" size=15 onclick="show_calendar('calform.datebox');">

og der står "no" i stedet for "on": nomouseover="window.stat..."
Avatar billede thesurfer Nybegynder
09. juni 2004 - 21:41 #2
..og det er nok bedre med:

<a href="#" onclick="show_calendar('calform.datebox');return false" ...>
Avatar billede grunken Nybegynder
09. juni 2004 - 21:57 #3
generelt er din første løsning den bedste compac på nær nogle skønhedsfejl som surfer har rettet :o)

folk vil blive synderligt irreterede over at der bliver åbnet en kalender når de smutter ind i et tekstfelt, som de ikke selv har bedt om :o), desuden vil mange popupdræbere blokke den - ikke godt for din sides ry !
Avatar billede compac Seniormester
10. juni 2004 - 15:14 #4
Ja, det er et dilemma. Jeg kunne godt tænke mig at man fik mulighed for at "klikke" datoen ind via en lille kalender eller også skrive den via tastaturet.
Er der nogen der har et forslag?
Avatar billede roenving Novice
10. juni 2004 - 15:18 #5
Brug den med knappen, men tillad, at popup'en kommer ved dobbelt-klik !-)

<input type=text name="datebox" size=15 ondblclick="show_calendar('calform.datebox');">
Avatar billede compac Seniormester
10. juni 2004 - 16:21 #6
Ja, det må være måden. Men det var for at slippe for validering efter indtastning.
Hvordan laver jeg det så man kan gøre det på beggge måder - med kontrol af syntaxen.

Jeg vil udvide spørgsmålet til: Hvordan kontrollerer jeg at datoen ikke er ældre end dags dato?
Dato formatet der kommer fra *.js - filen ser således ud dd/mm/yyyy.
Avatar billede roenving Novice
10. juni 2004 - 16:38 #7
Sådan noget lignende ?-)

<input type=text name="datebox" size=15 ondblclick="show_calendar('calform.datebox');" onchange="checkDate(this);">

<script type="text/javascript">
function checkDate(fld){
  var d = fld.value;
  d = d.replace(/[\.\/ \-]+/g,"/");
  if(!d.match(/^\d{2}\/\d{2}\/\d{4}$/)){
    alert('Fejl i datoen');
    fld.focus();
    return false;
  }
  d = d.split("/");
  var dat = new Date(+d[2],(+d[1]-1),+d[0],23,59,59);
  var today = new Date();
  if(dat.getFullYear() != +d[2] || dat.getMonth()+1 != +d[1] || dat.getDate() != +d[0] || today.getTime() > dat.getTime()){
    alert('Fejl i datoen');
    fld.focus();
    return false;
  }
  fld.value = d.join("/");
}
</script>

-- man kunne også indsætte noget, som testede for gyldige datoer i andet format, f.eks. 12/12/04 eller sådan noget og konverterede dem ...
Avatar billede compac Seniormester
10. juni 2004 - 17:43 #8
Kontrollen af den manuelle indtastning virker ikke. Har jeg har "kaldet" til *.js-filen liggende forkert? Det ligger i:
<Head>
<script language="JavaScript" src="date-picker.js">
</script>
</head>
Avatar billede roenving Novice
11. juni 2004 - 01:12 #9
Det er ikke det, som er galt, men måske har du kopieret script-tags med ?-)

-- de er, som anden html-kode, i hvert fald ulovlige i en .js-fil !-)
Avatar billede compac Seniormester
17. juni 2004 - 22:05 #10
Ja- det var fejlen
Avatar billede roenving Novice
18. juni 2004 - 11:44 #11
Så skal vi vist have svar fra en hel stribe, bl.a. mig ...

-- velbekomme '-)
Avatar billede thesurfer Nybegynder
18. juni 2004 - 20:12 #12
Ingen points til mig, tak.
Avatar billede roenving Novice
12. juli 2004 - 01:41 #13
-- tak for point ;~}
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