Radio und Textarea werden bei Fehler wieder disabled

inspiron8

Mitglied
Hallo,
ich habe da ein kleines Problem.
Wenn die Checkbox aktiviert wird, werden Radio und Textarea ent"disabled" :rolleyes:
Tritt beim Submit, der Überprüfung, ein Fehler auf, werden Radio und Textarea wieder "disabled" obwohl die Checkbox noch aktiv ist. :(
Was kann ich da machen damit diese solange aktiv bleiben, bis Überprüfung o.k. ist?

Gruß


PHP:
<?php header ('Content-Type: text/html; charset=utf-8');
error_reporting(E_ALL);
//-----------------------------------------------

/* Fehlerauswertung  */

$errorFelder = array(); 
$error = null; 
$felder = array("beschreibung"); 

    
// start Überpruefung der Eingabe 
if(isset($_POST['ueberpruefung'])) { 
  $error = false; 
    
    
  foreach($felder as $feld) { 
    if("" ==($_POST[$feld]) or "*" ==($_POST[$feld]) or "Bitte auswählen!" ==($_POST[$feld])) { 
      $error = true; 
      $errorFelder[$feld] = true; 
    } 
  } 
}if($error === false) { 

echo "<b>Alles i.O.!</b>";

} else { 

  if($error === true) 
  echo "<b>Bitte alle Felder ausf&uuml;llen!</b>";
?>   

<style type="text/css">

textarea {
	width: 200px;
	height: 50px;
	background-color: #f3f8fb;
}

</style>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
  <meta http-equiv="X-UA-Compatible" content="IE=8" />
  <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
  <title>test</title>

<script type="text/javascript">

function gesperrt(chk){
var felder = new Array('radio1', 'radio2', 'beschreibung');
var i;
if(document.getElementById){
for (i=0; i<felder.length; i++)
        if(chk){
            document.getElementById(felder[i]).style.backgroundColor = "#ffffff";
            document.getElementById(felder[i]).disabled = false;
        }
        else {
            document.getElementById(felder[i]).style.backgroundColor = "#f3f8fb";
            document.getElementById(felder[i]).disabled = true;
        }
    }
}
</script>
  
</head>
<body>
<form class="commentForm" method="post" accept-charset="utf-8" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF'])?>">

<!-- Element 1 -->
<input type="checkbox" name="check1" id="check1" onclick="gesperrt(this.checked)" value="ON" <?php if(isset($error) and $_POST['check1'] == "ON") {echo "checked";} ?> />

<!-- Element 2 -->
<label for="radio1">Ja
<input type="radio" name="radio" id="radio1" value="JA" disabled='disabled'/>
</label>

<!-- Element 3 -->
<label for="radio2">Nein
<input type="radio" name="radio" id="radio2" value="NEIN" checked="checked" disabled='disabled'/>        
</label>
        
<!-- Element 4 -->
<textarea name="beschreibung" id="beschreibung" disabled='disabled'<?php if(isset($errorFelder['beschreibung'])) echo 'class="error"'; ?>><?php echo ($_POST['beschreibung']);?></textarea>

<!-- UI Button -->
<input type="hidden" name="ueberpruefung" value="1">	
<input type="submit" id="submitButton" name="submitButton" value="Speichern" /> 

</form>  
<?php 
 }  
?>
</body>
</html>
 
Zuletzt bearbeitet:
Habe noch nie Javascript gemacht;-)

HTML anscheinend auch noch nie ;)
Schau dir mal dein Code an da ist ja alles durcheinander gewürfelt

Ein HTML Dokument hat ungefähr folgenden Aufbau:
  • DTD
  • head
    • meta
    • script
    • style
    • link
  • body
    • Blockelemente: div, table, form, h1-6, p, blockquote ...
      • Inline Elemente: a, em, b, u, i, strong, span, img, input, button ...
 
HTML anscheinend auch noch nie ;)
da ist ja alles durcheinander gewürfelt
....außer das ich das Style in die falsche Zeile kopiert habe, wo ist da das Problem? Da ist doch nix "durcheinander".
Wenn du meine Frage gelesen hättest, würdest du dir sicher denken können, das es sich hier nur um den kopierten Teil des Codes geht, wo das Problem auftritt.

Gruß
 
Auch, wenns nur ein Auszug ist, geht das gar nicht:
Code:
</style>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 
Auch, wenns nur ein Auszug ist, geht das gar nicht:
Code:
</style>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
Hallooooo!
Hast du nicht gelesen was ich geschrieben habe,
ich habe mich beim kopieren der Codezeilen in dieses Forum in der Zeile vertan. Das kann doch vorkommen, oder?
Das Style wird bei mir so geladen

HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=9"

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Script-Type" content="text/javascript">
<link rel="stylesheet" title="Default" href="../css/style_form.css" type="text/css" media="screen" />
...
 
Zuletzt bearbeitet:
...so, ich habe mal etwas ausprobiert.
Ich denke, dort wo "{ alert('box1 ist aktiviert'); }" steht, muss "....style.backgroundColor = "#ffffff";" und "...disabled = false;" hin.
Wie schreibe ich das am besten?

Gruß

HTML:
<script type="text/javascript">

function DoTheCheck() {
	if(document.myform.check1.checked == true)
           document.getElementById(felder[i]).style.backgroundColor = "#ffffff";
	{ alert('box1 ist aktiviert'); }
	
	if(document.myform.check1.checked == false)
	{ alert('box1 ist deaktiviert'); }
}

function gesperrt(chk){
var felder = new Array('radio1', 'radio2', 'beschreibung');
var i;
if(document.getElementById){
for (i=0; i<felder.length; i++)
        if(chk){
            document.getElementById(felder[i]).style.backgroundColor = "#ffffff";
            document.getElementById(felder[i]).disabled = false;
        }
        else {
            document.getElementById(felder[i]).style.backgroundColor = "#f3f8fb";
            document.getElementById(felder[i]).disabled = true;
        }
    }
}
</script>
</head>
<body>
<form name="myform" >
<input type="checkbox" name="check1" id="check1" onclick="gesperrt(this.checked)" value="ON" <?php if(isset($error) and $_POST['check1'] == "ON") {echo "checked";} ?> />

<input type="submit" id="submitButton" name="submitButton" value="Speichern" onClick="DoTheCheck()" />
</form>  
</body>
</html>
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück