Avatar billede hnteknik Novice
07. august 2002 - 21:55 Der er 12 kommentarer og
1 løsning

ingen .innerHTML på form element <input> ?!

Jeg vil gerne opdatere et tekst input felt fra en anden <select>. Det går også fint med f.eks.:
ONCHANGE="document.myForm.mLink.value = this.options[this.selectedIndex].value;"

men

man skulle jo også gerne kunne se, at feltet er opdateret, f.eks. ved
document.myfORM.MLink.innerHTML = z;

Men det går jo ikke, men hvad så. Kan man opdatere et input felt eller er man nødt til at have en <div> ved siden af ???

Henrik
Avatar billede nikolajdu Nybegynder
07. august 2002 - 21:58 #1
hvad mener du med at opdatere <input> med innerHTML??
Avatar billede bocker Nybegynder
07. august 2002 - 22:01 #2
innerHTML er kun til SPAN og DIV

Hvis du vil opdatere et INPUT i JavaScript skal du bruge value ...
Avatar billede nikolajdu Nybegynder
07. august 2002 - 22:07 #3
bocker - DEt gør han allerede ....
Avatar billede hnteknik Novice
07. august 2002 - 22:10 #4
jes - det er jeg med på, men jeg ( brugeren) vil jo gerne kunne se, hvad <input feltet> bliver opdateret med. Det opdateres ikke visuelt!!!! ( den er selvfølgelig opdateres og kan bruges videre frem) blot ved at sætte value. Der mangler en form for klient refresh. Kun innerHTML opdateres ( i mit tilfælde) på brugerens skærm .
Avatar billede nikolajdu Nybegynder
07. august 2002 - 22:16 #5
Jeg er stadigt ikke med...
Avatar billede hnteknik Novice
07. august 2002 - 22:32 #6
>>nikolajdu - vi har krydses hinanden.

.value indeholder den opdaterede værdi ved en kientside assignment a la ONCHANGE="document.myForm.mLink.value = this.options[this.selectedIndex].value;"
, men skærmen opdateres ikke i <input> feltet med den nye værdi.  innerHTML opdaterer skærmen men kun i <div> områder.

Hvad kan jeg gøre for at brugeren kan se, at <input> feltet er opdateret og 'med hvad' udover at viderassigne et <div> område med den odpaterede værdi i <input> feltet - er der ikke en mere elegant metode ??!

Henrik
Avatar billede jakoba Nybegynder
07. august 2002 - 22:34 #7
<input kommandoen omkranser ikke noget (den har ikke nogen </input) så den kan heller ikke have en innerHTML.

men det er nemt at skrive noget i det felt den står for:
  document.formNavn.feltNavn.value = "det der skal stå";

mvh JakobA
Avatar billede jakoba Nybegynder
07. august 2002 - 22:35 #8
Den bliver opdateret automatisk når du skriver. hvis ikke er det noget andet der er galt.
Avatar billede hnteknik Novice
07. august 2002 - 23:01 #9
>>jakoba

Øh hvad gik galt, nu virker det - ihvertfald i mit eks. Jeg er sgu ved at blive gammel. Her er et tilrettet eksempel:

Tak for sparket Henrik

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
    <title>Untitled</title>
</head>

<body>
<script LANGUAGE="javascript">
<!--
    function Change(xval,yval,x,z){

    xval = xval.replace(",",".");
    yval = yval.replace(",",".");
       
        if (isNaN(xval) ==true){
            alert('Du skal indtaste et kr beløb');
            return false;
        }
    if (isNaN(yval) ==true){
            alert('Du skal indtaste en procentsats');
            return false;
        }
    resultat = ((xval * yval) / 100)
    resultat = String(resultat).replace(".",",");
        x.innerHTML = "" + resultat + "";
        z.value = "" + resultat + "";
    tal3.innerHTML = z.value;
    //document.form1.R1.innerHTML = z;
    // fy fy det må man ikke!
}
//-->
</script>
<center>
<form name="form1">

<input type="text" name="kr1" size="4" onchange="Change(document.form1.kr1.value,document.form1.indtast1.value,tal1,document.form1.R1);"> kr.
<input type="text" name="indtast1" size="4" onchange="Change(document.form1.kr1.value,document.form1.indtast1.value,tal1,document.form1.R1);"> %<br>
<br>
Resultatet er i kr. :<div id="tal1">&nbsp;</div>
<input type="text" name="R1" size="4" value="R1"><br>
<br>-----------------------<br>
<input type="text" name="kr2" size="4" onchange="Change(document.form1.kr2.value,document.form1.indtast2.value,tal2,document.form1.R2)"> kr.
<input type="text" name="indtast2" size="4" onchange="Change(document.form1.kr2.value,document.form1.indtast2.value,tal2,document.form1.R2);"> %<br>
<br>
Resultatet er i kr. :<div id="tal2">&nbsp;</div>
<input type="text" name="R2" size="4" value="R2"><br>
-------------<br>
Her er value af R1/R2 innerhtmlet over i et div
<div id="tal3">&nbsp;</div>
</form>
</center>
</body>
</html>
Avatar billede hnteknik Novice
07. august 2002 - 23:03 #10
Det næste bliver så lige, at finde ud af, hvorfor denne her ikke gør det tricket :

ONCHANGE="document.myForm.mLink.value = this.options[this.selectedIndex].value;"
Avatar billede nikolajdu Nybegynder
07. august 2002 - 23:06 #11
selectedIndex bruges kun i selectboxe..
Avatar billede hnteknik Novice
07. august 2002 - 23:18 #12
>>nikolajdu

jeps - det er jeg godt klar over. Jeg fandt fejlen nu. Jeg har et ASP script, hvor du overfører db, sql etc. og den smider så en select box retur i hoved. Den nye DW MX æder hukommelsen op i min gamle win Me maskine og så hænger sider en gang imellem og onchange teksten var røget ind et forkert sted.

Tak for hjælpen - jeg må ned og reboote for at friske rammen op.

Henrik
Avatar billede nikolajdu Nybegynder
07. august 2002 - 23:20 #13
:)
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