Avatar billede ahjdp1 Nybegynder
26. oktober 2003 - 11:31 Der er 19 kommentarer og
2 løsninger

Deaktiver form felt ved udfyldelse af et andet

Jeg har to formfelter, som jeg gerne vil have til at gøre følgende:

Hvis man indtaster noget i felt1 skal felt2 deaktiveres og lige omvendt hvis man indtaster noget i felt2 skal felt1 deaktiveres.

Kan man lave det, jeg har kigget søgt her på eksperten, men kunne ikke bruge noget.

På forhånd tak
Avatar billede schaefner Juniormester
26. oktober 2003 - 11:42 #1
<form>
<input type="text" name="field1" onkeyup="this.value!='' ? this.form.field2.disabled=1 : this.form.field2.disabled=0"> <input type="text" name="field2" onkeyup="(this.value!='') ? this.form.field1.disabled=1 : this.form.field1.disabled=0">
</form>
Avatar billede roenving Novice
26. oktober 2003 - 11:43 #2
<html>
<head>
<title>Deaktiver felter</title>
<script language="javascript" type="text/javascript">
function dis(fld){
n = (fld.name=='felt1')?'felt2':'felt1';
if(fld.value!=""&&fld.value!=fld.defaultValue){
fld.form.elements[n].disabled=true;
}else{
fld.form.elements[n].disabled=false;
}
}
</script>
</head>
<body>
<br>
<form id="minForm" name="minForm">
<input id="felt1" name="felt1" type="text" value="Tom" onkeyup="dis(this);" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;" size="20"><br>
<input id="felt2" name="felt2" type="text" value="Tom" onkeyup="dis(this);" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;" size="20">
<br>
</form>
</body>
</html>
Avatar billede roenving Novice
26. oktober 2003 - 11:44 #3
*lol*
>>jesper

-- vi har taget den samme indgangsvinkel !-)
Avatar billede ahjdp1 Nybegynder
26. oktober 2003 - 11:47 #4
Ikke helt det jeg søgte, felterne skal blive deaktiverede når der udfyldes noget i det ene (altså det der ikke indtastes noget i skal blive deaktiveret så man ikke kan indtaste noget i det.
Avatar billede roenving Novice
26. oktober 2003 - 11:48 #5
Det er da præcis hvad der sker ?-)
Avatar billede schaefner Juniormester
26. oktober 2003 - 11:49 #6
Det skulle gerne være tilfældet ved dem begge to :)
Avatar billede ahjdp1 Nybegynder
26. oktober 2003 - 11:59 #7
i min browser er det kun teksten der bliver fjernet fra felterne, der er ikke nogle af dem der bliver deaktiverede
Avatar billede roenving Novice
26. oktober 2003 - 12:05 #8
Så virker den også i Mozilla, men det giver en underlig effekt, at focus reagerer som den gør !-)

<script language="javascript" type="text/javascript">
function dis(fld){
n = (fld.name=='felt1')?'felt2':'felt1';
if(fld.value!=""&&fld.value!=fld.defaultValue){
fld.form.elements[n].readOnly=true;
}else{
fld.form.elements[n].readOnly=false;
}
}
</script>
Avatar billede ahjdp1 Nybegynder
26. oktober 2003 - 12:12 #9
Der sker bare slet ingenting hos mig, kan vi ikke lave så felterne ikke er udfyldte fra starten og så snart man taster noget i et af felterne bliver det andet felt gråt og deaktiveret?
Avatar billede schaefner Juniormester
26. oktober 2003 - 12:13 #10
ahjdp1 >> Har du prøvet min?
Avatar billede schaefner Juniormester
26. oktober 2003 - 12:15 #11
Prøv at skrive noget i det ene felt og derefter at trykke i det andet, det skulle du ikke gerne kunne.
Avatar billede schaefner Juniormester
26. oktober 2003 - 12:17 #12
Det kan godt være du ikke kan se det er deaktiveret, men det er det.
Avatar billede ahjdp1 Nybegynder
26. oktober 2003 - 12:18 #13
whey nu virker shaefner's script, kan man så ikke gøre sådan at baggrundsfarven bliver grå (#C0C0C0) når det bliver deaktiveret?
Avatar billede roenving Novice
26. oktober 2003 - 12:20 #14
Jo-jo, hvis du også vil have det gråttet kan man:

<html>
<head>
<title>Deaktiver felter</title>
<script language="javascript" type="text/javascript">
function dis(fld){
n = (fld.name=='felt1')?'felt2':'felt1';
if(fld.value!=""&&fld.value!=fld.defaultValue){
fld.form.elements[n].readOnly=true;
fld.form.elements[n].style.background="#ccc";
}else{
fld.form.elements[n].readOnly=false;
fld.form.elements[n].style.background="#fff";
}
}
</script>
</head>
<body>
<br>
<form id="minForm" name="minForm">
<input id="felt1" name="felt1" type="text" value="" onkeyup="dis(this);" size="20"><br>
<input id="felt2" name="felt2" type="text" value="" onkeyup="dis(this);" size="20">
<br>
</form>
</body>
</html>

-- og der er stor forskel på visningen i Mozilla og IE, så det er nemt at blive snydt !-)
Avatar billede ahjdp1 Nybegynder
26. oktober 2003 - 12:23 #15
Det var bare lækkert tak for hjælpen begge to
Avatar billede ahjdp1 Nybegynder
26. oktober 2003 - 12:24 #16
hvis i lige vil svare
Avatar billede schaefner Juniormester
26. oktober 2003 - 12:26 #17
svar :)
Avatar billede roenving Novice
26. oktober 2003 - 12:28 #18
Velbekomme '-)
Avatar billede roenving Novice
26. oktober 2003 - 12:33 #19
-- og tak for points ;~}
Avatar billede floetti Nybegynder
30. december 2004 - 13:09 #20
Nu da dette spørgsmål er lige op imode hvad jeg leder efter... gider jeg ikke at oprætte et nyt.

Hvordan er det så om jeg har for eksempel 6 felter hvor 5 skal deaktiveres om der skrives i det første og så omvendt om der skrives i et af de 5, så deaktiveres det første...??

På forhånd tak

//floetti
Avatar billede floetti Nybegynder
30. december 2004 - 14:04 #21
ligemeget... jeg har fundet en anden løsning!
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