Avatar billede wolfgang Praktikant
24. september 2003 - 10:52 Der er 4 kommentarer og
1 løsning

Angiv værdi i formfelt på baggrund af option value i dropdown.

Hej med jer,

Da jeg ikke er den store haj til Javascript, har jeg et spørgsmål ang. en eksisterende kode.

Det jeg ønsker er at angive en value i det felt der bliver "disabled", som naturligvis forsvinder igen og bliver erstattet af den "rigtige" værdi, når man vælger en anden option.

Koden ser således ud:
onChange="if(this.options[this.selectedIndex].value=='0'){this.form.Slutdato.disabled=true;}else{this.form.Slutdato.disabled=false;}"

Håber I kan hjælpe.


MVH
Wolfgang
Avatar billede mm12010 Nybegynder
24. september 2003 - 10:59 #1
her kan også bruge flere værdier:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>404984</title>
<script language="JavaScript" type="text/javascript">
val = new Array("deaktiver","ved","disse","vaedier");
function disableField(dd,frm){
    for(i=0;i<val.length;i++){
        if(dd.options[dd.selectedIndex].value==val[i]){
            frm.txt1.value='det der så skal stå';
            frm.txt1.disabled=true;
            break;
            }
        else{
            frm.txt1.disabled=false;
            }
        }
    }
</script>
</head>
<body onLoad="disableField(document.forms['formular'].sel,document.forms['formular']);">
<form action="#" method="post" name="formular">
  <select name="sel" onChange="disableField(this,this.form);">
    <option value="0">&nbsp;</option>
    <option value="intet">intet</option>
    <option value="deaktiver">deaktiver</option>
    <option value="ingenting">ingenting</option>
    <option value="ved">ved</option>
    <option value="disse">disse</option>
    <option value="vaerdier">vaerdier</option>
  </select>
  <br>
  <input name="txt1" type="text" value="Felt der deaktiveres">
  <br>
  <input name="txt2" type="text" value="andet felt">
  <br>
  <input type="submit" name="Submit" value="Submit">
</form>
</body>
</html>
Avatar billede mm12010 Nybegynder
24. september 2003 - 11:01 #2
hvis felt skal tage sin oprindelige værdi tilbage når det ikke er disabled, skal funktionen være sådan:

function disableField(dd,frm){
    for(i=0;i<val.length;i++){
        if(dd.options[dd.selectedIndex].value==val[i]){
            frm.txt1.value='det der så skal stå';
            frm.txt1.disabled=true;
            break;
            }
        else{
            frm.txt1.value=frm.txt1.defaultValue;
            frm.txt1.disabled=false;
            }
        }
    }
Avatar billede wolfgang Praktikant
24. september 2003 - 11:24 #3
Hej mm12010,

Jeg får en fejl ved onLoad og ved onChange.

Kan du se fejlen ?

Funktionen:
val = new Array("0","2");
function disableField(dd,frm){
    for(i=0;i<val.length;i++){
        if(dd.options[dd.selectedIndex].value==val[i]){
            frm.Slutdato.value='det der så skal stå';
            frm.Slutdato.disabled=true;
            break;
            }
        else{
            frm.Slutdato.value=frm.Slutdato.defaultValue;
            frm.Slutdato.disabled=false;
            }
        }
    }

Onload:
onLoad="disableField(document.forms['BorgerHistorik'].Aktiveringsform,document.forms['BorgerHistorik']);"

Select:
onChange="disableField(this,this.form);"

Jeg går ud fra at fejlen er opstået pga. omdøbning af felter.

Min select hedder: Aktiveringsform
Min formular hedder: BorgerHistorik


MVH
Wolfgang
Avatar billede wolfgang Praktikant
24. september 2003 - 11:31 #4
Har fundet fejlen.

Funktionen var linket ind.
Der er ingen probs. når det bliver skrevet direkte på siden.

Takker
Avatar billede mm12010 Nybegynder
24. september 2003 - 12:40 #5
selv tak :o)
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