Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 20
  1. #1
    Stina Lohmann
    Themenstarter

    Registriert
    10.2009
    Beiträge
    1.023

    Javascript wird nicht ausgeführt

    Hey liebe Kollegen,

    hab ein merkwürdiges Problem zurzeit. Habe eine <form> mit <inputs> diverser Art. Nun möchte ich eigentlich nichts weiter als diese bei onchange auslesen und die Summe bilden, sowie das Ergebniss drunter schreiben. Das Problem ist, dass mein Javascript scheinbar einfach nicht ausgeführt wird, dabei habe ich schon folgende Tests durchgeführt:

    <input type="text" onchange="alert(this.value)"></input>
    Sobald ich nun das Feld ändere und daneben klicke wird der Inhalt wie erwartet per alert ausgegeben.
    Ändere ich aber onchange auf eine function, die in einer eingebundenen script Datei ist:

    <input type="text" onchange="check()"></input>

    function check(){
    alert("Hey!");
    }

    passiert nichts. Natürlich hab ich als nächstes getestet, ob die Einbindung überhaupt funktioniert in dem ich foglendes in die externe Datei schrieb:

    onload(alert("Hey!"));
    ging einwandfrei..

    Ergibt für mich grad keinen Sinn, das so ein simples mini Javascript schon so Verwirrung stiftet.. Hat jemand eine Idee?

  2. #2
    Dülmener Rosenapfel Avatar von das_micha
    Registriert
    03.2007
    Ort
    Bad Bevensen aka der A**** der Heide
    Alter
    34
    Beiträge
    1.665
    weiß ja nicht was du dir von onchange erwartest, onchange schlägt erst an wenn du das textfeld mit geänderten werten verläßt. soll eine permanentabfrage kommen, dann wäre onkeyup die bessere wahl. mal davon ab ist input ein single-tag wird also <input type="irgendwas" /> geschrieben.


    Code:
    <input type="text" onchange="check(this.value)"/> <input type="text" onkeyup="check(this.value)"/>
    <script type="text/javascript">
    function check(inhalt){
    alert('geht doch! -- '+inhalt);
    }
    </script>
    Vollzeitfalschparker....
    MacBook late '08 2,0 C2D - 4GB | iMac 27" i5 - 12GB | MacMini 1,83 C2D - 1GB | iPhone 3Gs weiß + iPad 32GB | ATV2
    last but not least: good old iPod Shuffle 512MB*g*

  3. #3
    Stina Lohmann
    Themenstarter

    Registriert
    10.2009
    Beiträge
    1.023
    das weiß ich alles, hab es jetzt einfach nur schnell zur erklärung hingeklatscht. das problem ist ja wie oben beschrieben das die eine Variante funktioniert, die andere wichtige aber nicht und der Grund ist nicht ersichtlich.

    onchange mit dem direkten alert funktioniert problemlos. will ich aber statt alert eine function wie auch in deinem Beispiel aufrufen, wird garnichts ausgeführt. An der Einbindung der Script Datei kann es nicht liegen, da auch dort der Test wunderbar geklappt hat.

  4. #4
    Dülmener Rosenapfel Avatar von das_micha
    Registriert
    03.2007
    Ort
    Bad Bevensen aka der A**** der Heide
    Alter
    34
    Beiträge
    1.665
    also wenn du den code von mir so 1:1 in ein html dokument schmeisst, dann funktioniert der garantiert!
    wie hast du denn die externe datei eingebunden? bitte einmal die exakte codezeile.
    Vollzeitfalschparker....
    MacBook late '08 2,0 C2D - 4GB | iMac 27" i5 - 12GB | MacMini 1,83 C2D - 1GB | iPhone 3Gs weiß + iPad 32GB | ATV2
    last but not least: good old iPod Shuffle 512MB*g*

  5. #5
    Stina Lohmann
    Themenstarter

    Registriert
    10.2009
    Beiträge
    1.023
    die betreffenden Zeilen (es handelt sich um php Dateien):


    -------------header
    <script type="text/javascript" src="script/booking.js"></script>


    --------------betreffende form (nur der anfangsteil)

    <form id="formpart1" action="index.php?nav=tickets#buchen" method="post" >
    <label for="erwachsene">Erwachsene:</label><input type="text" id="erwachsene" name="erwachsene" onchange="check()" size="5" maxlength="5" <?php if(isset($_POST['erwachsene']) && !isset($error['s1']['erwachsene'])){ ?>
    value="<?php echo $_POST['erwachsene'];?>" <?php }?> /> <?php if(isset($error['s1']['erwachsene'])){ echo $error['s1']['erwachsene']; }?>
    <?php if(isset($error['s1']['preisnachlass'])){ echo $error['s1']['preisnachlass']; } ?><br />


    ---------booking.js
    function check(){

    alert('hey!');

    }

  6. #6
    Dülmener Rosenapfel Avatar von das_micha
    Registriert
    03.2007
    Ort
    Bad Bevensen aka der A**** der Heide
    Alter
    34
    Beiträge
    1.665
    geht 1a

    nur kleiner tip der dein script übersichtlicher und damit weniger fehleranfällig machen kann,
    ich würde die valueauswertung die du in php machst ausserhalb des forms in einem seperaten php-block machen
    z.b.
    Code:
    <?php
    if(isset($_POST['erwachsene']) && !isset($error['s1']['erwachsene'])){
    $formval = "value='{$_POST['erwachsene']}' ";
    }else{
    $formval = null;
    } ?> <input type="text" <?php echo $formval ?> />
    Je nach vorliebe kann man es auch anders definieren, ich persönlich halte nur nicht viel davon html und php zu sehr zu vermischen. zumal der parser ja auch immer php öffnen -> parsen -> php schliessen machen muss. und die scripte werden nicht grade pflegeleicht dadurch.

    Ohne den weiteren code gesehen zu haben: Aber du kannst dir ne menge tipkram sparen wenn du dir erst die einzelnen indizies aus den superglobalen wie $_POST an normale variablen übergibst, vor allem kannst du dann schon ggf. schadhafte fakeeingaben filtern
    oder einfach mittels extract($_POST) alle indizies auf einen schlag in normale variablen übergeben.
    dann sparst du dir in deinen ifs den ganzen $_POST kram.
    Geändert von das_micha (24.11.2010 um 09:55 Uhr)
    Vollzeitfalschparker....
    MacBook late '08 2,0 C2D - 4GB | iMac 27" i5 - 12GB | MacMini 1,83 C2D - 1GB | iPhone 3Gs weiß + iPad 32GB | ATV2
    last but not least: good old iPod Shuffle 512MB*g*

  7. #7
    Stina Lohmann
    Themenstarter

    Registriert
    10.2009
    Beiträge
    1.023
    Ja sollte es eben, tuts aber leider bei mir nicht. Es passiert einfach nichts und ich finde keine Erklärung dafür.

    Schreibe ich direkt in das input:
    <input type="text" id="erwachsene" name="erwachsene" onchange="alert(this.value)" size="5" maxlength="5"

    funktioniert es. die obere varaiante mit check() führt aber zu nichts


    PS: DAnke für den PHP Tipp

  8. #8
    Dülmener Rosenapfel Avatar von das_micha
    Registriert
    03.2007
    Ort
    Bad Bevensen aka der A**** der Heide
    Alter
    34
    Beiträge
    1.665
    klingt für mich nach nem cache-problem
    Falls du das FF-PlugIn noch nicht hast, lad installier dir mal den Webdeveloper und da kannst du den Cache für die entwicklung deaktivieren.
    Hab festgestellt das sich JS-Datein gerne wie Flashdatein ziemlich nachhaltig im cache festbeissen.
    schön ist, du hast nen recht guten pseudodebugger drin der dir js und css fehler zeigt (zwei kleine zeichen ganz rechts)
    Vollzeitfalschparker....
    MacBook late '08 2,0 C2D - 4GB | iMac 27" i5 - 12GB | MacMini 1,83 C2D - 1GB | iPhone 3Gs weiß + iPad 32GB | ATV2
    last but not least: good old iPod Shuffle 512MB*g*

  9. #9
    Stina Lohmann
    Themenstarter

    Registriert
    10.2009
    Beiträge
    1.023
    Werd ich machen, danke. Hab FF mit den plugins eh, nur die seite hab ich noch nicht durchgejagt, da ich zu beschäftigt mit Verzweifeln war Wenn schon die einfachsten Grundregeln nicht mehr zu funktionieren scheinen, macht einen sowas fertig ^^

  10. #10
    Dülmener Rosenapfel Avatar von das_micha
    Registriert
    03.2007
    Ort
    Bad Bevensen aka der A**** der Heide
    Alter
    34
    Beiträge
    1.665
    Zitat Zitat von Raziel1 Beitrag anzeigen
    Werd ich machen, danke. Hab FF mit den plugins eh, nur die seite hab ich noch nicht durchgejagt, da ich zu beschäftigt mit Verzweifeln war Wenn schon die einfachsten Grundregeln nicht mehr zu funktionieren scheinen, macht einen sowas fertig ^^
    hihi, das kenn ich meine Schüler sehen dann auch immer so aus

    Vollzeitfalschparker....
    MacBook late '08 2,0 C2D - 4GB | iMac 27" i5 - 12GB | MacMini 1,83 C2D - 1GB | iPhone 3Gs weiß + iPad 32GB | ATV2
    last but not least: good old iPod Shuffle 512MB*g*

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •