Ich kriegs und kriegs einfach nicht hin. document.getElementByID

Acriss

Gesperrt
Hi,
sry das ich schon wieder poste, aber ich habe folgendes Problem:

Ich möchte, das wenn eine Auswahl im <select>-field getroffen wird, ein Textfeld erscheint.

Mit onFocus und onBlur hat's überhaupt nicht hingehaun,
mein neuer Versuch sieht so aus:
PHP:
 function show()
                 {
                 x = 1;
                 	if (x == 1)
                         {
                         document.getElementById("show").stlye.visibility = "visible";
                         x = 0;
                         return true;
                         }
                         else if (x == 0)
                         {
                         document.getElementById("show").style.visibility = "collapse";
                         x = 1;
                         return true;
                         }
                 }
HTML:
<option onClick="show();">Sonstiges</option>

...

<input type="text" name="sonstiges" style="visibility:collapse" id="show" />

Need Help :rolleyes:
 
Hi,
bei Dropdowns greift man in der Regel mit Js über den onchange Handler zu. Zb.:
HTML:
<html>
<head>
<script language="JavaScript">
<!--
function test(obj)
{
   var index = obj.selectedIndex;
   alert(obj.options[obj.selectedIndex].value);
}
//-->
</script>
<title>titel</title>
</head>
<body>  
<select name="Ziel" onchange="test(this);">
<option value="1" selected>1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
</body>
</html>
 
Hmm,
irgendwie auch nicht das Wahre :(
PHP:
function show(obj)
                 {
   			if(obj.options[obj.selectedIndex].value == "Sonstiges")
                         {
                 	document.getElementById("show").style.visibility="visible";
                         return true;
                         }
                         else if(obj.options[obj.selectedIndex].value == "Farm")
                         {
                         document.getElementById("show").style.visibility = "collapse";
                         return true;
                         }
                         else if(obj.options[obj.selectedIndex].value == "Opfer")
                         {
                         document.getElementById("show").style.visibility = "collapse";
                         return true;
                         }
                         else if(obj.options[obj.selectedIndex].value == "Nuller")
                         {
                         document.getElementById("show").style.visibility = "collapse";
                         return true;
                         }
                         else if(obj.options[obj.selectedIndex].value == "Nett")
                         {
                         document.getElementById("show").style.visibility = "collapse";
                         return true;
                         }
                         else if(obj.options[obj.selectedIndex].value == "Blacklist")
                         {
                         document.getElementById("show").style.visibility = "collapse";
                         return true;
                         }
                         else if(obj.options[obj.selectedIndex].value == "Optional")
                         {
                         document.getElementById("show").style.visibility = "collapse";
                         return true;
                         }
                 return true;
                 }

PHP:
 echo '<select name="bemerkung[]" size="1" onChange ="show(this);">';
                         echo '<option selected><i>Optional</i></option>';
                         echo '<option>Farm</option>';
                         echo '<option>Opfer</option>';
                         echo '<option>Nuller</option>';
                         echo '<option>Nett</option>';
                         echo '<option>Blacklist</option>';
                         echo '<option>Sonstiges</option>';
                         echo '</select>';

Es funktioniert immer noch nicht :(
 
Der Fehler liegt woanders:
Du vergleichst mit dem value....dein options haben aber kein value-Attribut.

Wenn du mit dem in der Liste sichtbaren Text vergleichen willst, greife auf die Eigenschaft "text" zu:
Code:
<form>
<select name="bemerkung[]" size="1" onChange ="this.form.sonstiges.style.display=(this.options[this.selectedIndex].text=='Sonstiges')?'inline':'none'">
  <option selected>Optional</option>  
  <option>Farm</option>  
  <option>Opfer</option>  
  <option>Nuller</option>  
  <option>Nett</option>  
  <option>Blacklist</option>  
  <option>Sonstiges</option>  
</select>
<input type="text" name="sonstiges" style="display:none" />   
</form>

(Habs mit display gemacht...mit dem visibility:collapse muss ich mich erst noch anfreunden ;) :) )
 
falls du den Code für den IE schreibst, ich glube der versteht
HTML:
visibility:collapse
nicht, stattdessen solltest du
HTML:
visibility:hidden
nehmen. - Nachdem das den zuvor reservierten Platz im gegensatz zu collapse nicht freigibt solltest du vielleicht über die display Eigenschaft arbeiten(sofern du mit Tabelen arbeitest).

Sollte dies nicht der Fall seinposte doch mal den gesamten Seitencode, dann gehts sicher leichter mit dem Helfen.
 
Zurück