• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

öffnet JavaScript funktion nicht

tobiasblub

Neues Mitglied
Hallo,

wollte fragen ob jemand mir helfen kann bzw. weiß, warum bei meinem Programmauschnitt, die Funktion nicht aufgerufen wird.

Zur erklärung, ich will mittels klick auf ein Bild, die Feldeigenschaft <readonly> von einem input-feld löschen, sodass dieses Feld Verändert werden kann.

Danke für eure antworten :idea:

Hier der Code

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

   function edit_category(){
      document.getElementsByName(3).removeAttribute("readonly");
      alert("adsfasdf"); /*dient nur zum Testen, ob die function aufgerufen wird
   }
             
   alert("asdfasdf"; /*nur für Testzwecke           

</script>

<!-- HTML Code-Aufruf der Funktion --->

<a class="edit_picture" href="javascript:edit_category();"><img src="edit.png"/></a>
 
Das hier

Code:
document.getElementsByName(3)

ist falsch. Die Funktion muss einen Elemente-Namen als Parameter erhalten. Z.N.

Code:
document.getElementsByName("input")

Dann erhältst Du aber ggfs. ein Array mit mehrere Elementen als Ergebnis, was vermutlich nicht dein Ziel ist.

Wenn Du genau ein Element ansprechen willst, gib ihm eine ID und verwende

Code:
document.getElementById()

um dieses anzusprechen.

Und das hier

Code:
   alert("asdfasdf"; /*nur für Testzwecke

enthält einen Fehler. Daher wird vermutlich auch das restliche JavaScript nicht ausgeführt.

Übrigens würde ich das readonly-Attribut nicht entfernen sondern auf false setzen um es zu deaktivieren.
 
problem nicht behoben

erstmals danke für die antwort aber funktioniert trotzdem noch nicht.

mein problem ist, dass sich dieser funktionsaufruf in mehreren <div id>´s und auf diese wird mit anderen funktionen darauf zugegriffen.
und wenn ich jetzt hierbei eine ID über dieses Input lege, wird es über die anderen div´s gelegt, und somit wird dieses div(mit dem input) ganz oben angezeigt und funktioniert nicht.

ich kopiere einmal den anderen javascript-code auch noch hierein, fürs Verständniss.

HTML:
<!-- HTML Code-Aufruf der Funktion --->
<ul class="cataloglist">
            <li>
                <div id="cataloglist">
                    <input type="text" name="2" value="Kategorie1" onClick="deleteshow('2')" size="10" readonly />

                    <div id="cataloglistDeleteUnvisible">
                        <a id="2" href="google.at"><img src="wastebin.jpg"/></a>      
                        <a class="edit_picture" id="2" href="google.at"><img src="edit.png"/></a>
                    </div>      
          
                </div>
            </li>
            
            <li>
                <div id="cataloglist">
                    <div id="3"><input type="text" name="3" value="Kategorie1" onClick="deleteshow('3')" size="10" readonly/>

                    <div id="cataloglistDeleteUnvisible">
                        <a id="3" href="#"><img src="wastebin.jpg"/></a>    
                        <a class="edit_picture" href="javascript:edit_category();"><img src="edit.png"/></a>  

                    </div>
                    
                </div>
            </li>
</ul>


<!-- Javascript Code der Funktionen --->

<script type="text/javascript">
            
            function deletehide(id){
                document.getElementById("delete" + id).style.visibility = "hidden";
            }
            
            function deleteshow(id){
                try {
                    document.getElementById('cataloglistDeleteVisible').id = 'cataloglistDeleteUnvisible';
                }
                catch(err){}
                document.getElementById(id).parentNode.id = 'cataloglistDeleteVisible';
            }
                        
            function edit_category(){           
                document.getElementsByID('3').removeAttribute("readonly");      
            }           
    
</script>

vl. weiß noch irgendjemand was dazu, wie das Problem gelöst werden könnte, bzw. wo der fehler liegt.
danke :idea: :-(
 
Ich weiß nicht in welchem Bezug die IDs und "Überlappen" bei dir stehen. Das klingt für mich so als würdest Du die CSS-Eigenschaften an die ID binden.

Übrigens dürfen IDs nicht nur aus Zahlen bestehen. "2" ist ungültig. Du musst mindestens einen Buchstaben voranstellen.

Beispiel für readonly:
Code:
obj.readonly = false;
 
Zurück
Oben