Avatar billede cool_casper Nybegynder
06. marts 2002 - 16:12 Der er 6 kommentarer og
1 løsning

Hvorfor virker det ikke??

Hej!

Jeg har lavet en funktion der skal vise et eks. på tid- og datoformater når man klikker på en radio, men det virker ikke...! HELP ME!

dato.asp::::::::::::::::::::::::::::::::::::::::

<SCRIPT>
function count() {
if (document.form1.tidformat[0].checked) {
tidformat = '1'
}
if (document.form1.tidformat[1].checked) {
tidformat = '2'
}
if (document.form1.tidformat[2].checked) {
tidformat = '3'
}
if (document.form1.tidformat[3].checked) {
tidformat = '4'
}
if (document.form1.datoformat[0].checked) {
datoformat = '1'
}
if (document.form1.datoformat[1].checked) {
datoformat = '2'
}
if (document.form1.datoformat[2].checked) {
datoformat = '3'
}
if (document.form1.datoformat[3].checked) {
datoformat = '4'
}
}
function tjekdato(link) {
count();
if (tidformat > 0) {
tidobj = 'tidfelt'+tidformat;
tid = ' kl. '+tidobj.innerHTML;
//tid = tidobj.innerHTML
//alert(tid);
eks.innerHTML = link.innerHTML+tid;
} else {
eks.innerHTML = link.innerHTML;
}
document.form1.dato.checked=true;
}

function tjektid(link) {
count();
if (datoformat > 0) {
datoobj = 'datofelt'+datoformat;
dato = datoobj.innerHTML+' kl. ';
//dato = datoobj.innerHTML
//alert(dato);
eks.innerHTML = dato+link.innerHTML;
} else {
eks.innerHTML = link.innerHTML;
}
document.form1.tid.checked=true;
}
</SCRIPT>


<form name="form1" method="post" action="dato.asp">
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="bodytext">
          <tr>
            <td colspan="2" align="center">
<%= vSTATUS %>
            </td>
          </tr>
  <tr WIDTH="70%">
    <td  STYLE="border-bottom : 1px solid Gray;">
<input type="checkbox" name="dato">&nbsp;Dato format</td>
    <td STYLE="border-bottom : 1px solid Gray;">
<input type="radio" name="datoformat" value="1" onclick="tjekdato(dato1)">&nbsp;<SPAN ID="datofelt1"><%= datoformat1 %></SPAN><br>
<input type="radio" name="datoformat" value="2" onclick="tjekdato(dato2)">&nbsp;<SPAN ID="datofelt2"><%= datoformat2 %></SPAN><br>
<input type="radio" name="datoformat" value="3" onclick="tjekdato(dato3)">&nbsp;<SPAN ID="datofelt3"><%= datoformat3 %></SPAN><br>
<input type="radio" name="datoformat" value="4" onclick="tjekdato(dato4)">&nbsp;<SPAN ID="datofelt4"><%= datoformat4 %></SPAN><br><br>
</td>
  </tr>
  <tr WIDTH="70%">
    <td>
<input type="checkbox" name="tid">&nbsp;Dato format</td>
    <td><br>
<input type="radio" name="tidformat" value="1" onclick="tjektid(tid1)">&nbsp;<SPAN ID="tidfelt1"><%= tidformat1 %></SPAN><br>
<input type="radio" name="tidformat" value="2" onclick="tjektid(tid2)">&nbsp;<SPAN ID="tidfelt2"><%= tidformat2 %></SPAN><br>
<input type="radio" name="tidformat" value="3" onclick="tjektid(tid3)">&nbsp;<SPAN ID="tidfelt3"><%= tidformat3 %></SPAN><br>
<input type="radio" name="tidformat" value="4" onclick="tjektid(tid4)">&nbsp;<SPAN ID="tidfelt4"><%= tidformat4 %></SPAN><br>
</td>
  </tr>
          <tr>
            <td colspan="2" align="center"><br>
<b>              Eks.:</b> &nbsp;&nbsp;&nbsp;<SPAN ID="eks"></SPAN>
            </td>
          </tr>
          <tr>
            <td colspan="2" align="right">
              <input type="submit" name="Submit" value="Videre &gt;&gt; 1/2">
            </td>
          </tr>
</table>
</form>

dato.asp;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Det forskellige tidformater bliver så fyldt ud af min ASP, men det er ikke det der er problemmet. Man skal klikke på den radio der er udfor teksten man vil have, og så skal den vise den nede ved Eks. ! Hvad er der galt???
Avatar billede jakoba Nybegynder
06. marts 2002 - 18:51 #1
function tjektid(link) {
    count();
    if (datoformat > 0) {
        datoobj = 'datofelt'+datoformat;
        dato = datoobj.innerHTML+' kl. ';    // note 1
        //dato = datoobj.innerHTML
        //alert(dato);
        eks.innerHTML = dato+link.innerHTML;  // note 2
    } else {
        eks.innerHTML = link.innerHTML;
    }
    document.form1.tid.checked=true;
}


note 1: din variabel  datoobj  er en tekststreng her. Det giver ingen mening at sige  datoobj.innerHTML
Brug istedet:
        dato = datoobj +' kl. ';    // note 1  rettet

note 2: Ja IE vil nu og da finde det korrekte objekt i dokumentet blot man angiver objektes id. Men det er ikke noget du kan stole på og det virker slet ikke i andre browsere end IE.
Brug istedet:
        document.all['eks'].innerHTML = dato + link;  // note 2
jeg har også fjernet .innerHTML fra link.

I dine input linier:
<input type="radio" name="tidformat" value="1" onclick="tjektid(tid1)">
angiver du tid1 somom det var en variabel. jeg tror du mener det som en tekst ned ' og ' omkring (og hvis ikke, hvor der den variabel så defineret?)
<input type="radio" name="tidformat" value="1" onclick="tjektid('tid1')">

mvh JakobA
Avatar billede jakoba Nybegynder
06. marts 2002 - 18:55 #2
Ahh nu ser jeg hvad du mener med datoobj.innerHTML. der er spans med id=datofelt1, 2, osv.
brug:
        dato = document.all[datoobj].innerHTML+' kl. ';   
for at adressere de spans korrekt.

(du har en debuglinie med alert(dato) den må da have vist den var helt gal der??)

mvh JakobA
Avatar billede cool_casper Nybegynder
06. marts 2002 - 20:28 #3
Hej JacobA!

Thx, men det funker ikke helt endnu... Det ser sådan ud:

function count() {
if (document.form1.tidformat[0].checked) {
tidformat = '1'
}
if (document.form1.tidformat[1].checked) {
tidformat = '2'
}
if (document.form1.tidformat[2].checked) {
tidformat = '3'
}
if (document.form1.tidformat[3].checked) {
tidformat = '4'
}
if (document.form1.datoformat[0].checked) {
datoformat = '1'
}
if (document.form1.datoformat[1].checked) {
datoformat = '2'
}
if (document.form1.datoformat[2].checked) {
datoformat = '3'
}
if (document.form1.datoformat[3].checked) {
datoformat = '4'
}
}
function tjekdato(link) {
    count();
    if (tidformat > 0) {
        tidobj = 'tidfelt'+tidformat;
        tid = ' kl. '+document.all[tidobj].innerHTML;   
        eks.innerHTML = link.innerHTML+tid;
    } else {
        eks.innerHTML = link.innerHTML;
    }
    document.form1.dato.checked=true;
}
function tjektid(link) {
    count();
    if (datoformat > 0) {
        datoobj = 'datofelt'+datoformat;
        dato = document.all[datoobj].innerHTML+' kl. '
        eks.innerHTML = dato+link.innerHTML; 
    } else {
        eks.innerHTML = link.innerHTML;
    }
    document.form1.tid.checked=true;
}

Men der giver fejl i linien: "if (datoformat > 0) {" og siger "datoformat er ikke defineret"! Men det har jeg jo lige gjort, count funktionen har jo lige kørt...! Hvad er der så galt?? BTW er jeg glad for du forsåt min tankegang, ikke så mange andre der gør det lige i dette tilfælde...! :-)
Avatar billede cool_casper Nybegynder
06. marts 2002 - 20:33 #4
He he... Jeg var vist lidt for hurtig...! Der kommer ingen fejl, men den finder stadig ikke det modsatte format! Den skriver for eks: 5. Marts kl. undefined"!! Hva så??
Avatar billede cool_casper Nybegynder
06. marts 2002 - 21:04 #5
Så! Nu virker det...! Thx...
Avatar billede jakoba Nybegynder
06. marts 2002 - 22:28 #6
Da rart at høre det virker, men jeg fatter nu stadig ikke den der link.innerHTML :-))

tak for points
Avatar billede cool_casper Nybegynder
07. marts 2002 - 07:25 #7
he he.... OK! Du kan se det her: http://www.visitme.dk/nytdesign/services/dato.asp
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