Avatar billede flim Nybegynder
15. april 2005 - 22:07 Der er 14 kommentarer og
1 løsning

Hvordan gøres tekstbox inaktiv

Hej eksperter.

Jeg har 4 checkboxe og et tekstfelt.

Jeg søger et lille script som sætter tekstboksen inaktiv og sletter hvis der ikke er flueben i nogen af checkboxene.

Så snart man sætter flueben i en af kasserne skal feltet gøres aktivt.

Er der en der kan fikse den?
Avatar billede hyberpreprocessor Nybegynder
15. april 2005 - 22:32 #1
Avatar billede thesurfer Nybegynder
15. april 2005 - 22:40 #2
Prøv med (ikke testet):

<input type="checkbox" onclick="skift()">

<script type="text/JavaScript">
var f = document.FORMNAVN; // erstat "FORMNAVN" med navnet på din form ("name=...")
var t = f.boks.felt; // erstat "boks" med navnet på din boks
var el = f.elements;

function skift()
{
t.disabled = true; // er nu inaktivt, men IKKE slettet endnu
for (i=0; i<el.length; i++) // start løkke, og løb alle elementerne igennem
{
  // hvis elementet er en checkbox, og den er krydset af:
  if (el[i].type == "checkbox" && el{i].checked == true) {
    t.disabled = false; // slå disabled fra = er nu aktivt
    break; // hop ud af løkken, da mindst 1 checkbox er krydset af
  }
}

// hvis ingen af checkboxene er krydset af, vil den stadig være disabled,
// så indholdet slettes:
if (t.disabled == true) t.value = "";
}
</script>
Avatar billede thesurfer Nybegynder
15. april 2005 - 22:41 #3
Smukt... not... rettelse:

var t = f.boks; // erstat "boks" med navnet på din input-boks
Avatar billede flim Nybegynder
15. april 2005 - 22:49 #4
der hvor at der står f.boks.felt

Hvad er det der felt??

Det ser nemlig ikke ud til at virke :/
Avatar billede thesurfer Nybegynder
15. april 2005 - 22:50 #5
Der der står efter "//" er forklaring på kode-linien :-)
Avatar billede flim Nybegynder
15. april 2005 - 22:51 #6
Ja, er jeg med på, men min boks hedder formmail - så jeg skal vel skrive f.forummail.felt ifølge dit eksempel?
Avatar billede flim Nybegynder
15. april 2005 - 22:52 #7
En anden ting - er det ikke fuldstændig ligemeget hvor på siden jeg smækker det der javascript ind?
Avatar billede thesurfer Nybegynder
15. april 2005 - 22:53 #8
Jeg tester lige.. for, som du siger, så virker det ikke helt som det skal :-)
Avatar billede thesurfer Nybegynder
15. april 2005 - 22:59 #9
Komplet eksempel:

<html>
<head>
<script type="text/JavaScript">
function skift(f)
{
var t = f.mitfelt; // erstat "boks" med navnet på din boks
var el = f.elements; // formens elementer (checkbox, inputbox, osv..)

t.disabled = true; // er nu inaktivt, men IKKE slettet endnu
for (i=0; i<el.length; i++) // start løkke, og løb alle elementerne igennem
{
  // hvis elementet er en checkbox, og den er krydset af:
  if (el[i].type == "checkbox" && el[i].checked == true) {
    t.disabled = false; // slå disabled fra = er nu aktivt
    break; // hop ud af løkken, da mindst 1 checkbox er krydset af
  }
}

// hvis ingen af checkboxene er krydset af, vil den stadig være disabled,
// så indholdet slettes:
if (t.disabled == true) t.value = "";
}
</script>
</head>
<body>

<form name="minform">
<input type="checkbox" onclick="skift(this.form)">
<input type="checkbox" onclick="skift(this.form)">
<input type="checkbox" onclick="skift(this.form)">
<input type="text" name="mitfelt" value="" disabled>
</form>

</body>
</html>
Avatar billede flim Nybegynder
15. april 2005 - 23:00 #10
Jeg checker lige og vender tilbage
Avatar billede flim Nybegynder
15. april 2005 - 23:04 #11
Jamen for søren da... det virker jo bare :-)

Skal lige høre om en sidste hurtig ting. Kan jeg få baggrunden i tekstfeltet til at skifte til grå så folk kan se at det er inaktivt?
Avatar billede thesurfer Nybegynder
15. april 2005 - 23:09 #12
Erstat de respektiver linier, så det kommer til at se sådan ud (sidste det af scriptet):

// hvis ingen af checkboxene er krydset af, vil den stadig være disabled,
// så indholdet slettes:

t.style.backgroundColor = "#FFFFFF"; // hvid baggrund = aktiv
if (t.disabled == true) {
    t.value = "";
    t.style.backgroundColor = "#AAAAAA"; // grå baggrund = inaktiv
}

}
</script>

Du kan selføligt ændre farven "#AAAAAA" til en mere passende farve..

- Svar lagt.
Avatar billede thesurfer Nybegynder
15. april 2005 - 23:10 #13
Hvis feltet skal være gråt fra start af (tilføjet style="background-color: #AAAAAA"):

<input type="text" name="mitfelt" value="" disabled style="background-color: #AAAAAA">
Avatar billede flim Nybegynder
15. april 2005 - 23:11 #14
Takker mange gange :D

Fortsat god aften
Avatar billede thesurfer Nybegynder
15. april 2005 - 23:11 #15
Jotak, og i lige måde :-)
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