Avatar billede andersthingholm Nybegynder
17. januar 2004 - 00:14 Der er 11 kommentarer og
1 løsning

Disable form fields

Hej,

Jeg har en gruppe af radiobuttons og vil gerne sætte dem op sådan at hvis den første er valgt er et givent textfield disabled, men hvis man så vælger radiobutton 2, bliver det enabled.

Jeg håber at nogen kan hjælpe med dette.

VH

Anders Thingholm
Avatar billede thesurfer Nybegynder
17. januar 2004 - 00:19 #1
Sådan?:

<form>
<input type="text" name="tekstfelt" value="hello world">
<br>
<input type="radio" name="ed" onClick="this.form.tekstfelt.disabled=true">Disabled
<br>
<input type="radio" name="ed" onClick="this.form.tekstfelt.disabled=false">Enabled
</form>
Avatar billede andersthingholm Nybegynder
17. januar 2004 - 00:21 #2
Super, men kan du lave det som funktionskald, så jeg kan tilføje flere elementer?
Avatar billede thesurfer Nybegynder
17. januar 2004 - 00:22 #3
Hvordan er din opsætning?
Avatar billede andersthingholm Nybegynder
17. januar 2004 - 00:23 #4
hvad tænker du på?
Avatar billede thesurfer Nybegynder
17. januar 2004 - 00:27 #5
Felter, navne osv.. hvordan skal det virke? Skal man f.eks. bare kalde:
skift("feltnavn", "enabled") ?
Avatar billede thesurfer Nybegynder
17. januar 2004 - 00:28 #6
..det ville være nemmere med f.eks. skift("feltnavn", "true")..
Avatar billede andersthingholm Nybegynder
17. januar 2004 - 00:34 #7
Ahh, jeg har ikke lavet den endnu, men kan du ikke bare kalde dem tekstfelt1, tekstfelt2 og tekstfelt3 f.eks. Alle 3 skal disables/enables på samme tid.
Avatar billede thesurfer Nybegynder
17. januar 2004 - 00:45 #8
Her er nogle eksempler..

<form name="FORMNAVN">
<input type="text" name="tekstfelt1" value="felt 1">
<input type="text" name="tekstfelt2" value="felt 2">
<input type="text" name="tekstfelt3" value="felt 3">
<br>
<input type="radio" name="ed" onClick="doit('true')">Disabled</label>
<br>
<input type="radio" name="ed" onClick="doit('false')">Enabled
</form>

<script type="text/JavaScript">

// Denne funktioner disabler/enabler alle felter..
// den kaldes med: doit('true') eller doit('false')
function doit(stat)
{
var antal_felter = 3;
var i;
var tmp;
for (i=1; i < antal_felter + 1; i++) {
//  tmp = eval('tekstfelt' + i);
  document.FORMNAVN['tekstfelt' + i].disabled = eval(stat);
//alert(tmp);
}
}

// Denne funktioner disabler/enabler kun det valge element..
// den kaldes med: skift('feltnavn', 'true') eller skift('feltnavn', 'false');
function skift(felt, stat)
{
document.FORMNAVN[felt].disabled = eval(stat);
}

</script>
Avatar billede thesurfer Nybegynder
17. januar 2004 - 00:47 #9
hmm.. hvorfor skriver jeg "funktioner" når jeg mener "funktion"..? :)
Avatar billede thesurfer Nybegynder
17. januar 2004 - 00:50 #10
Et par rettelser plus kommentar (kun JavaScript-delen):

<script type="text/JavaScript">

// Denne funktion disabler/enabler alle felter..
// den kaldes med: doit('true') eller doit('false')
function doit(stat)
{
// her angives antal felter. Felterne skal hedde "tekstfeltX",
// hvor X er et nummer fra 1 og op efter. Nummerene skal være i rækkefølge.
// Dvs: 1, 2 , 3 ..
// Det første felt har nummer 1.
var antal_felter = 3;
var i;
for (i=1; i < antal_felter + 1; i++) {
  document.FORMNAVN['tekstfelt' + i].disabled = eval(stat);
}
}

// Denne funktion disabler/enabler kun det valge element..
// den kaldes med: skift('feltnavn', 'true') eller skift('feltnavn', 'false');
function skift(felt, stat)
{
document.FORMNAVN[felt].disabled = eval(stat);
}

</script>
Avatar billede andersthingholm Nybegynder
17. januar 2004 - 14:15 #11
Super, smider du et svar?
Avatar billede thesurfer Nybegynder
17. januar 2004 - 14:30 #12
Yep! :)
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