# Textfeld aktivieren/deaktivieren



## cybergnom (11. August 2003)

Hallo,

ich habe folgendes Problem:

auf meiner Seite können Benutzer bestimmte Angaben machen.
Wenn Sie eine Angabe zu Frage a) machen, soll austomatisch das Antworfeld für Frage b) disabled sein. Genauso umgekehrt. Gibt der Benutzer eine Angabe zu Frage b) soll a) automatisch disabled sein.

ich habe das ganze ansatzweise so gelöst:


```
<html>
<head>
<title>Textfeld sperren</title>

</head>

<body bgcolor="#FFFFFF">

<script language="JavaScript">

function feld_sperren() 

{

    if(document.myform.checkbox1.checked) 
	{
	document.myform.textfeld.disabled = false;
    document.myform.textfeld.style.backgroundColor='#FFFFFF';
	document.myform.checkbox2.checked = false;
	}
	else
	{
	document.myform.textfeld.disabled = true;
    document.myform.textfeld.style.backgroundColor='#D4D0C8';
	}
	
	if(document.myform.checkbox2.checked) 
	{
	document.myform.textfeld2.disabled = false;
    document.myform.textfeld2.style.backgroundColor='#FFFFFF';
	document.myform.checkbox1.checked = false;
	}
	else
	{
	document.myform.textfeld2.disabled = true;
    document.myform.textfeld2.style.backgroundColor='#D4D0C8';
	}

}

</script>

<form name="myform" method="post" action="">

  <input type="checkbox" name="checkbox1" value="true" onClick="feld_sperren();">
  <input type="text" name="textfeld" style="background:'#D4D0C8';" DISABLED><br>
  <input type="checkbox" name="checkbox2" value="true" onClick="feld_sperren();">

  <input type="text" name="textfeld2" style="background:'#D4D0C8';">

</form>

</body>
</html>
```

so ein bisschen macht das Script auch das, was ich will. 
Aber eben nur ein bisschen. Wenn ich mich umentscheide (also erst Frage B) und dann doch Frage a) beantworte) geht's nicht mehr...

Ich weiß auch, was falsch an dem Script ist, aber ich stehe vollkommend auf dem Schlauch, wie das Problem zu lösen ist  

Wahrscheinlich sehe ich nur den Wald vor lauter Bäumen nicht... ;-)

Würde mich über Hilfe freuen!

MfG
cyber


----------



## xthetronx (11. August 2003)

Hi cyber,

wenn Du einfach nur möchtest, dass die Formulare wieder leer sind, würde ich einfach ein value setzen. siehe unten.
Ansonsten würde ich es mal mit Radiobutton versuchen. Die sind ja gut geeignet für ja/nein antworten.

Gruß

Torsten

<html>
<head>
<title>Textfeld sperren</title>

</head>

<body bgcolor="#FFFFFF">

<script language="JavaScript">

function feld_sperren()

{

    if(document.myform.checkbox1.checked)
    {
    document.myform.textfeld.disabled = false;
    document.myform.textfeld.style.backgroundColor='#FFFFFF';
    document.myform.checkbox2.checked = false;
    document.myform.textfeld2.value = "";
    }
    else
    {
    document.myform.textfeld.disabled = true;
    document.myform.textfeld.style.backgroundColor='#D4D0C8';
    document.myform.textfeld2.value = "";
    }

    if(document.myform.checkbox2.checked)
    {
    document.myform.textfeld2.disabled = false;
    document.myform.textfeld2.style.backgroundColor='#FFFFFF';
    document.myform.checkbox1.checked = false;
    document.myform.textfeld.value = "";
    }
    else
    {
    document.myform.textfeld2.disabled = true;
    document.myform.textfeld2.style.backgroundColor='#D4D0C8';
    document.myform.textfeld.value = "";
    }

}

</script>

<form name="myform" method="post" action="">

  <input type="checkbox" name="checkbox1" value="true" onClick="feld_sperren();">
  <input type="text" name="textfeld" style="background:'#D4D0C8';" DISABLED><br>
  <input type="checkbox" name="checkbox2" value="true" onClick="feld_sperren();">

  <input type="text" name="textfeld2" style="background:'#D4D0C8';">

</form>

</body>
</html>


----------



## cybergnom (11. August 2003)

Hallo Torsten,

Ziel des Scripts soll sein, dass ein User nur ein Textfeld der beiden ausfüllen kann.

Das ganze ist in ein Newslettersystem eingebaut und soll bei diesem Schritt bewirken, dass ein nutzer entweder einen personalisierten oder einen unpersonalisierten Betreff eingeben kann und nicht beides.

Der Nutzer kann also Wählen, ob er Textfeld a) oder Textfeld b) ausfüllt, darf aber nicht beide auswählen.

Problem im Moment:
Wenn ich zuerst das zweite Textfeld markiere und dann das erste, funktioniert es so, wie ich mir das vorstelle.
Wenn ich aber dann wieder das zweite markieren will, passiert garnix...
Das liegt imo daran, dass das erste Feld ja noch "checked" ist, wenn ich das zweite anklicke und so das zweite in der Funktion automatisch wieder "unchecked" wird...
Da ich nur sehr begrenztes Wisen über JavaScript besitze, habe ich leider keine Ahnung, wie ich dieses Problem beheben kann...

Ich hoffe, ich habe das ein wenig anschaulich erklären können.

MfG
cyber


----------



## xthetronx (11. August 2003)

Hallo cybergnom,

versuch´s mal damit.
Das habe ich mir für eine entweder... oder Abfrage programiert.
Ich hoffe es hilft.
Bei Fragen melden.

Gruß

Torsten


```
<html>
<head>
<title>Eingabe</title>
<meta name="author" content="www.teubner-design.de">
<script language="javascript">
function show(Eingabe)
{
 switch(Eingabe)
 {
 case "Kategorie":
  if(document.Frm.RB_Kategorie[1].checked == true)
  {
   document.getElementById("Kategorie_2").style.visibility = "visible";
   document.getElementById("Kategorie").style.visibility = "hidden";
   document.Frm.TF_KatNeu.value = "";
  }
  else if(document.Frm.RB_Kategorie[0].checked == true)
  {
   document.getElementById("Kategorie_2").style.visibility = "hidden";
   document.getElementById("Kategorie").style.visibility = "visible";
  }
  break;
 }
}
</script>
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">
<form name="Frm" method="post" action="eingabe.asp?action=Eintrag">
<table border="1">
 <tr>
      <td height="28">Kategorie</td>
  <td><div id="Kategorie" style="hidden:visibility">
  	  <select name="SE_Kategorie">
	  </select></div>
  </td>
  <td><input type="radio" name="RB_Kategorie" checked="true" onClick='javascript:show("Kategorie")'></input><input type="radio" name="RB_Kategorie" onClick='javascript:show("Kategorie")'></input></td>
  <td><div id="Kategorie_2" style="visibility:hidden"><input type="text" name="TF_KatNeu" value=""></input></div></td>
 </tr>
</table>
</form>
</body>
</html>
```


----------



## cybergnom (11. August 2003)

Danke für Deine mühe, aber damit kann ich leider garnix anfangen...  
Wie gesagt, ich habe noch nicht wirklich viel mit JavaScript gemacht... Ausserdem bekomm ich immer ne Fehlermeldung...

Naja... das Problem ist eigentlich nicht so groß...
Wie gesagt: 
der Wechsel zwischen "aktivieren 1. Feld und deaktivieren 2.Feld" klappt.
Nur anders herum gehts nicht   

Muss ich noch a bissal rumbasteln... vielleicht lande ich ja nen Glückstreffer  

MfG
Bastian


----------



## xthetronx (11. August 2003)

Hast Du das Script schonmal ausprobiert, was ich gepostet habe?


----------



## cybergnom (11. August 2003)

jup... wie gesagt: bekomm immer die Meldung:

Zeile: 36
Zeichen: 6
Fehler: ";" erwartet

ich hab zwar mal gesucht, aber nach meinem Wissensstand keinen Fehler entdeckt.

mfg
cyber


----------



## xthetronx (11. August 2003)

Du hast Post


----------



## cybergnom (11. August 2003)

wie Post? wann Post? wo Post?

Hab nüx  

MfG
cyber


----------



## xthetronx (11. August 2003)

Du hast einen Mitgliederbereich, da müsstest Du post finden


----------



## cybergnom (11. August 2003)

yaeh... Du bist ein Held!

Dein Template war zwar nicht unbedingt das, was ich wollte, aber es hat mir die Augen geöffnet  

Auf ne switch-Anweisung wäre ich ja im Leben nicht gekommen 

Hab's jetzt so gelöst und es funktioniert wunderbar!


```
<html>
<head>
<title>Textfeld sperren</title>

</head>

<body bgcolor="#FFFFFF">

<script language="JavaScript">

function feld_sperren(eingabe) 

{
	switch(eingabe)
 	{
 	case "feld1":
	{
	document.myform.textfeld.disabled = false;
    document.myform.textfeld.style.backgroundColor='#FFFFFF';
	document.myform.textfeld2.value = "";
	document.myform.textfeld2.disabled = true;
    document.myform.textfeld2.style.backgroundColor='#D4D0C8';
	document.myform.checkbox2.checked = false;
	document.myform.checkbox1.checked = true;
	break;
	}

 	case "feld2":
	{
	document.myform.textfeld.disabled = true;
    document.myform.textfeld.style.backgroundColor='#D4D0C8';
	document.myform.textfeld.value = "";
	document.myform.textfeld2.disabled = false;
    document.myform.textfeld2.style.backgroundColor='#FFFFFF';
	document.myform.checkbox2.checked = true;
	document.myform.checkbox1.checked = false;
	}

}
}
</script>

<form name="myform" method="post" action="">

  <input type="checkbox" name="checkbox1" value="true" onClick='javascript:feld_sperren("feld1")'>
  <input type="text" name="textfeld" style="background:'#D4D0C8';" DISABLED><br>
  <input type="checkbox" name="checkbox2" value="true" onClick='javascript:feld_sperren("feld2")'>

  <input type="text" name="textfeld2" style="background:'#D4D0C8';" DISABLED>

</form>

</body>
</html>
```

MfG
cyber


----------

