Fehler: ...is not a function

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Fehler: ...is not a function

    Ich habe folgendes Script im Head Bereich meiner HTML Datei:

    Quellcode

    1. function tel1() {
    2. if (document.neu.tel1.value == "Text") {
    3. document.neu.tel1.value = "";
    4. document.neu.tel1.style.color= "#000";
    5. }
    6. if (document.neu.tel1.value == "") {
    7. document.neu.tel1.value = "Text";
    8. document.neu.tel1.style.color = "#999";
    9. }
    10. }


    Wenn ich die Funktion ins Body Tag schreibe, funktioniert sie beim Seitenaufruf einwandfrei. Ich habe sie aber auch noch in das inputfeld per "onfocus" und "onblur" eingebunden, wo sie aber komischerweise nicht funktioniert. Dort bekomme ich nur die Fehlermeldung in der Fehlerkonsole von Firefox: "TypeError: tel1 is not a function".

    Was mache ich falsch?
  • Danke für deinen Tip. Habe so ziemlich alles umbenannt, brachte aber leider nichts. Ich habe es zwar auf Umwege hinbekommen, aber ich würde gerne wissen was hier falsch ist.

    Hier der Code:

    Quellcode

    1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    2. "http://www.w3.org/TR/html4/loose.dtd">
    3. <html>
    4. <head>
    5. <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
    6. <link rel="stylesheet" type="text/css" href="style.css">
    7. <script type="text/Javascript">
    8. <!--
    9. function text1() {
    10. if (document.eingabe.tel1.value == "Text") {
    11. document.eingabe.tel1.value = "";
    12. document.eingabe.tel1.style.color= "#000";
    13. }
    14. if (document.eingabe.tel1.value == "") {
    15. document.eingabe.tel1.value = "Text";
    16. document.eingabe.tel1.style.color = "#999";
    17. }
    18. }
    19. function nummer1() {
    20. if (document.eingabe.telefon1.value == "Telefonnr.") {
    21. document.eingabe.telefon1.value = "";
    22. document.eingabe.telefon1.style.color= "#000";
    23. }
    24. if (document.eingabe.telefon1.value == "") {
    25. document.eingabe.telefon1.value = "Telefonnr.";
    26. document.eingabe.telefon1.style.color = "#999";
    27. }
    28. }
    29. -->
    30. </script>
    31. </head>
    32. <body onload="text1(); nummer1();">
    33. <form method="post" name="eingabe">
    34. Lieferant: <input type="radio" name="art" id="art_lief">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    35. Mitarbeiter: <input type="radio" name="art" id="art_mit">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    36. Kunde: <input type="radio" name="art" id="art_kun">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    37. Sonstiges: <input type="radio" name="art" id="art_son">
    38. <br><br>
    39. <!-- Lieferant START ***************************************************************************************************** -->
    40. <div style="background-color: #ccc; width: 420px; padding: 10px; border: 1px solid #888;">
    41. <table>
    42. <tr>
    43. <td style="width: 120px;" class="bold uline">Kundennummer</td>
    44. <td><input style="width: 300px;" type="text" name="kdnr"></td>
    45. </tr>
    46. </table>
    47. </div>
    48. <br>
    49. <div style="background-color: #ccc; width: 420px; padding: 10px; border: 1px solid #888;">
    50. <table>
    51. <tr>
    52. <td colspan="2" class="bold uline">Firmensitz</td>
    53. </tr>
    54. <tr>
    55. <td style="width: 100px;">Lieferant</td>
    56. <td><input class="inputweite" type="text" name="name"></td>
    57. </tr>
    58. <tr>
    59. <td>Firmenname</td>
    60. <td><input class="inputweite" type="text" name="name"></td>
    61. </tr>
    62. <tr>
    63. <td>Straße</td>
    64. <td><input class="inputweite" type="text" name="strasse"></td>
    65. </tr>
    66. <tr>
    67. <td>Plz</td>
    68. <td><input style="width: 70px;" type="text" name="plz">&nbsp;&nbsp;&nbsp;&nbsp;Ort <input style="width: 185px;" type="text" name="ort"></td>
    69. </tr>
    70. <tr>
    71. <td>Land</td>
    72. <td><input class="inputweite" type="text" name="land" value="Deutschland"></td>
    73. </tr>
    74. <tr>
    75. <td>Telefon 1</td>
    76. <td><input style="width: 160px;" type="text" name="tel1" onfocus="text1();" onblur="text1();" value="Text">&nbsp;<input style="width: 132px;" type="text" name="telefon1" onfocus="nummer1();" onblur="nummer1();" value="Telefonnr."></td>
    77. </tr>
    78. <tr>
    79. <td>Fax</td>
    80. <td><input class="inputweite" type="text" name="fax"></td>
    81. </tr>
    82. <tr>
    83. <td>Handy</td>
    84. <td><input class="inputweite" type="text" name="handy"></td>
    85. </tr>
    86. <tr>
    87. <td>E-Mail</td>
    88. <td><input class="inputweite" type="text" name="mail"></td>
    89. </tr>
    90. </table>
    91. </div>
    92. <!-- Lieferant ENDE ***************************************************************************************************** -->
    93. <br><br>
    94. <input type="submit" value="Speichern" name="submit">
    95. </form>
    96. </body>
    97. </html>
    Alles anzeigen
  • Der Fehler ist denkbar einfach. Fällt beim debuggen und durchsteppen auf. ;)

    Quellcode

    1. function nummer1() {
    2. if (document.eingabe.telefon1.value == "Telefonnr.") {
    3. document.eingabe.telefon1.value = "";
    4. document.eingabe.telefon1.style.color= "#000";
    5. }
    6. if (document.eingabe.telefon1.value == "") {
    7. document.eingabe.telefon1.value = "Telefonnr.";
    8. document.eingabe.telefon1.style.color = "#999";
    9. }
    10. }


    Dein Problem ist, dass du erst das Feld auf value = "" setzt und dann im Anschluss auf value == "" prüfst. ich würde mal sagen, da fehlt ein "else". ;)


    Mit dem folgenden Code funktioniert es bei mir (neuster Chrome):

    Quellcode

    1. function text1() {
    2. if (document.eingabe.tel1.value == "Text") {
    3. document.eingabe.tel1.value = "";
    4. document.eingabe.tel1.style.color= "#000";
    5. } else if (document.eingabe.tel1.value == "") {
    6. document.eingabe.tel1.value = "Text";
    7. document.eingabe.tel1.style.color = "#999";
    8. }
    9. }
    10. function nummer1() {
    11. if (document.eingabe.telefon1.value == "Telefonnr.") {
    12. document.eingabe.telefon1.value = "";
    13. document.eingabe.telefon1.style.color= "#000";
    14. } else if (document.eingabe.telefon1.value == "") {
    15. document.eingabe.telefon1.value = "Telefonnr.";
    16. document.eingabe.telefon1.style.color = "#999";
    17. }
    18. }
    Alles anzeigen


    Grüße!
    Bodo06