Textfeld aktivieren/deaktivieren

cybergnom

Mitglied
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:

PHP:
<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
 
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>
 
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
 
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

PHP:
<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>
 
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 :rolleyes:

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

MfG
Bastian
 
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
 

Neue Beiträge

Zurück